[ruby] Cucumberを使ってメールを含む操作のテストを書いてみた
パスワードを忘れた際のパスワード再設定操作のテストを Cucumber で書いてみました。
UK STUDIOブログの Cucumber+email_specでActionMailerのテストをする に書かれているように Cucumber はメールを含む一連の操作をテストできます。
インストールと初期設定
メールのテストを行うプラグイン Email Spec をインストールします。
gem install bmabey-email_spec
features/support/env.rb に以下を追加します。GitHubに書かれているだけではエラーになってしまいました。
require 'email_spec' require 'email_spec/cucumber'
cd Railsプロジェクト script/generate email_spec
2009/10/30 追加
email_steps.rbの日本語版は UK STUDIOブログ に書かれています。 ありがとうございます!
これを email_ja_steps.rbとして保存します。
feature
こんな感じです
フィーチャ: パスワードの再設定 利用者がパスワードを忘れた時 シナリオ: パスワード再設定メールを使い新しいパスワードを設定し、ログインしてみる 前提 メールボックスが空になっている かつ "ログインページ" へアクセス もし "パスワードを忘れたら"リンクをクリックする ならば "パスワード再設定"と表示されていること もし "メールアドレス"に"xxxx@xxxx.com"と入力する かつ "送信"ボタンをクリックする ならば "xxxx@xxxx.com" がメールを1通受信していること もし "xxxx@xxxx.com" のメールを開く かつ メール中の "password/reset" リンクを開く ならば "パスワードの再設定"と表示されていること もし "パスワード"に"zzzzzz"と入力する かつ "パスワード(確認)"に"zzzzzz"と入力する かつ "更新"ボタンをクリックする ならば "パスワードを再設定しました"と表示されていること もし "ログインページ" へアクセス かつ "メールアドレス"に"xxxx@xxxx.com"と入力する かつ "パスワード"に"zzzzzz"と入力する かつ "ログイン"ボタンをクリックする ならば "ログイン成功"と表示されていること
「メール中の "〜" リンクを開く」の〜の部分には メールに書かれたURLの部分か、a(アンカー)の文字列を指定します。