TurnipでScenario Outline

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形式で表示するなどすれば、意思疎通用の表現としても使えそうなね。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中