コントローラーのテスト

参考:

コントローラの機能テスト | Rails ガイド [公式]

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 以降で assignsassert_template を使えるようにする。

参考:

rails/rails-controller-testing: Brings back `assigns` and `assert_template` to your Rails tests – GitHub

ヘルパーメソッドの一部を rails-controller-testing に移転 | Rails ガイド [公式]

Rails の Controller Spec | 酒と涙とRubyとRailsと

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA