Turnip+Appiumで使ってキーワード駆動のシナリオテストが実施できそうね
“Turnip or RSpec” x Appium
受け入れ試験レベルの抽象度のシナリオを、Appium x “RSpec or Turnip”で比較してみた
TurnipでAppiumを使ってみる
とAppiumとTurnipを使ってみたけれど、Turnipでscenario outlinesかけることが確認できたので、私の中でようやっとこの方向性が一段落しそう。
あとは、RSpecのshared_exampleの記述と少し比較してみて、という作業もいるけれど。
以下、元々の原文とする。
Feature: acceptance test
Scenario: display the result of google search
Given test with 'iphone'
Then go to 'https://google.com'
Then input 'ゆき' in search field
Then submit form
Then display search page ?
Then save screenshot '1'
Scenario: display the result of google search2
Given test with 'iphone'
Then go to 'https://google.com'
Then input '本' in search field
Then submit form
Then display search page ?
Then save screenshot '2'
もし、一部でTable specを使ったら以下のように表現することができる。
Scenario:
Given test with 'iphone'
When I do action as the following steps:
|Target|Action|
|https://google.com|go_site|
|ゆき|input_field|
||submit|
Then display search page ?
Then save screenshot '1'
また、もしScenario Outlineを使うとしたら、以下のようにExampleも使うことができる。
これで、RSpecでいうshared_examplesのように類似箇所をまとめ、変わったことろだけに集中したシナリオの記述がかけそう。
Scenario Outline: search search words with google
Given test with <device>
When go to <url>
When input <word> in search field
Then submit form
Then display search page ?
Then save screenshot <number>
Examples:
| device | url | word | number |
| 'iphone' | 'https://google.com' | 'ゆき' | 1 |
| 'iphone' | 'https://google.com' | '本' | 2 |
Appiumの記述を使えば、
– Capabilityの置き場所をAppiumの形式でまとめる
– GOALの記述(Appiumなので、一連の操作ができること+スクリーンショットで代替)
– Scenario OutlineたTable spec、sendを使った必要な箇所だけをシナリオとして記述、他はネストしたstepsを定義して隠蔽する
ができそう。
あとはScenario OutlineとExampleをMarkdown形式で表示するなどすれば、意思疎通用の表現としても使えそうなね。