演習
- StaticPagesコントローラのテスト (リスト3.22) にも重複があることにお気付きでしょうか。特に「Ruby on Rails Tutorial Sample App」を全てのタイトルテストでそのまま使っています。専用のsetup関数 (テストの設定用関数、個別のテストの前に必ず毎回実行される) を使用してこの重複を解消し、テスト修正後もリスト3.38のテストがGREENになることを確認します (なお、リスト3.38ではインスタンス変数 (2.2.2と4.4.5) と文字列の式展開 (4.2.2を使用しています)。
- サンプルアプリケーションにContact (問い合わせ先) ページを作成してください17。リスト3.13を参考にして、/static_pages/contactというURLのページに「Contact | Ruby on Rails Tutorial Sample App」というタイトルが存在するかどうかを確認するテストを最初に作成しましょう。3.3.3でAboutページにやったのと同じように、Contactページにもリスト3.39のコンテンツを表示しましょう (リスト3.39にはリスト3.38のような修正は行われていないので、そのままコピペしても動きません)。
出所)Ruby on Rails チュートリアル:実例を使って Rails を学ぼう
答え
test/controllers/static_pages_controller_test.rb に下記を追加
static_pages_controller_test.rb
def setup
@base_title = "Ruby on Rails Tutorial Sample App"
end
・
・
・
assert_select "title", "Home | #{@base_title}"
・
・
・
assert_select "title", "Help | #{@base_title}"
・
・
・
assert_select "title", "About | #{@base_title}"
手順:
①(test/controllers/static_pages_controller_test.rbに)contactのテスト作成
②(config/routes.rbに)contactのrootingを設定
③(app/controllers/static_pages_controller.rbに)contactのコントローラー作成
④(app/views/static_pages/contact.html.erbに)contactのビューを作成
終わり