はじめる!Cucumber第7〜9章
シナリオアウトライン
検証シナリオのおおよその流れ(アウトライン)自体は同じまま、複数のデータの組み合わせをテストするための機能。
- "シナリオ"を"シナリオアウトライン"に変更する
- "bob"とか"alice"のようなデータ類を"
"のように<>を使った文字列に変更する - サンプルセクションに<>でくくったデータの中身を表形式で定義する
""(ダブルクォート)で囲まれた箇所以外も置き換えて実行することが出来る。
タグ
rake cucumber:wip
で@wipタグのついたシナリオだけを実行できる。タグはシナリオ:(またはシナリオアウトライン:)の上に書く。
- wipは"work in progress"の略。
- @wipタグがついたシナリオは作業中なので、rake cucumberでは実行されない。
- @wipは最大三つまで指定できる
wipだけ特殊?他のタグは普通のタグとして、script/cucumber等のオプションとして実行するタグを指定することが出来る。
タグの例
- 外部システム連携が必要なシナリオに@external_systemというタグを付け、特定の環境のみ実行する
- 時間のかかるテストは@slow_testというタグを付け、CI環境でのみ実行する
rakeで特定のタグを実行する
config/cucumber.ymlとrakeタスクを新しく定義するなどする。
タグ毎に前処理/後処理を定義する
BeforeやAfterの引数にタグを文字列で指定して処理内容を記述すると、タグの実行前後にフックできる。BeforeやAfterメソッドのブロック引数には、実行したテストシナリオのデータが入ってくる。
ruby-debug
cucumberのステップ定義の中にdebuggerを仕込める。