maeshimaの日記

メモ書きです

はじめる!Cucumber第6章

基礎は終わったのかも。主にシナリオをリファクタリングするテクニックについて。

背景

背景を使うと、各シナリオで共通の箇所を一箇所にまとめることに出来る。これってフィーチャ内の全てのシナリオで共通なのかな?→共通のようだ

複数のステップを呼び出すステップの定義

下記のように、複数のステップを呼び出すステップを定義することで、シナリオを簡潔にしていた。

Given /^ユーザ"([^"]*)"がいて、ログインしている$/ do |username|
  Given %Q[ログイン名が"#{username}"、Eメールアドレスが"#{username}@example.com"のユーザがいる]
  Given %Q["#{username}"としてログインしている]
end

自然言語の表記揺れの方針

  • 相対日付や単位など、他の箇所でも使えると便利なものは Transform を定義する
  • 本質的に同じ処理をする場合の表記揺れは、正規表現でカバーする
  • 将来、異なる処理になりそうな場合は簡単であっても別のステップ定義を使う

その他

なぜか rake cucumber FEATURES=features/watch_users.features
としたときにFEATURESの指定が無効になっていた。なんでだろう