The RSpec Book読書会を進めていて、命令型シナリオよりも、宣言型シナリオのほうが自分達のチームは向いてるよなーという話になったので、シナリオを宣言型に直していこうぜということになりました。
その際に、現在通っているテストは、「Cucumberはstepからstepを呼べるからそれにまとめてしまうぜ」という話になったのでやってみました。
ちなみにCucumberのバージョンは1.2.1です。
まずダメなパターン。
もし /^記事を登録する$/ do steps %{ もし "content"に"記事の内容"と入力する かつ "保存する"ボタンをクリックする ならば "記事の内容"と表示されていること } end
これでいけると思っていたのですが、エンコードエラーとなってダメでした。
悩んだ挙げ句に、「もし・かつ・ならば」を英語にしたら、通りました。
stepsでまとめるときには、「もし・かつ・ならば」は使えないようです…。
通ったパターン。
もし /^記事を登録する$/ do steps %{ When "content"に"記事の内容"と入力する And "保存する"ボタンをクリックする Then "記事の内容"と表示されていること } end
まぁ大した変更でもないので現行はこれでまとめていこうと思います。