コントローラーのテスト
参考:
RSpec on Rails コントローラとビュー編 | Rubyist Magazine (るびま)
書き方
参考:
Rspec でコントローラーのテスト その1 | おじさんたちの反乱
ActionDispatch::IntegrationTest
参考:
ActionDispatch::IntegrationTest | Ruby on Rails API [Official]
Request specs
参考:
Request specs | RSpec (Relish)
Controller specs
参考:
Controller spec 基本 – parameterとルーティングエラーについて – Qiita
Controller specs | RSpec (Relish)
移行
参考:
Rails5 でコントローラのテストを Controller spec から Request spec に移行する – Qiita
rails5 からは controller テスト書くぐらいなら、request テストを書くのがいいっぽい | mikami’s blog
Replacing RSpec controller specs, part 1: Request specs | Everyday Rails
Replacing RSpec controller specs, part 2: Feature specs | Everyday Rails
Changes to test controllers in Rails 5 | BigBinary Blog
ActionController::TestCase
参考:
ActionController::TestCase | Ruby on Rails API [Official]
request.host
参考:
Rails testing default request host – Stack Overflow
エンジンのテストでエラー
UrlGenerationError
が発生する。
ActionController::UrlGenerationError: No route matches {:controller=>"test", :action=>"index"}
原因:
エンジンの routes
が読み込めない。
対処法:
TestCase
のインスタンスにエンジンの routes
を設定する。
setup do @routes = Engine.routes end
参考:
Rails4 で Engine の controller spec で必ず use_route する – Qiita
Rails Engine (4.0.2) routing methods fail in controllers using MiniTest – Stack Overflow
Testing against engine routes in Rails with Test::Unit – Stack Overflow
サンプル
参考:
andyw8/hexagonal_rails_rspec_example – GitHub
rails-controller-testing
Rails 5.0 以降で assigns
と assert_template
を使えるようにする。
参考: