컨트롤러 (또는 기능) 테스트를 실행하면 Rails 4.0이 컨트롤러 인스턴스 (@controller)를 자동으로 인스턴스화하지 못합니다. 레일즈 3.2에서는 테스트가 잘 돌아갔다.
이 문제를 해결하는 방법에 대한 제안 사항이 있으십니까?Rails 4.0 RuntimeError : @controller는 nil입니다. 테스트 설정 메서드에서 설정했는지 확인하십시오.
샘플 출력 :
$ ruby -Ilib:test test/controllers/account_controller_test.rb
[Coveralls] Set up the SimpleCov formatter.
[Coveralls] Using SimpleCov's 'rails' settings.
warning: parser/current is loading parser/ruby21, which recognizes
warning: 2.1.5-compliant syntax, but you are running 2.1.3.
...
1) Error:
AccountControllerTest#test_activate_api_key:
NoMethodError: undefined method `before_filter' for AccountController:Class
app/controllers/account_controller.rb:47:in `<class:AccountController>'
app/controllers/account_controller.rb:46:in `<top (required)>'
2) Error:
AccountControllerTest#test_add_mugshot:
RuntimeError: @controller is nil: make sure you set it in your test's setup method.
test/functional_test_case.rb:26:in `post'
test/controller_extensions.rb:533:in `assert_request'
test/controller_extensions.rb:202:in `either_requires_either'
test/controller_extensions.rb:137:in `post_requires_login'
test/controllers/account_controller_test.rb:418:in `test_add_mugshot'
계정 컨트롤러 정의 :
class AccountController < ApplicationController
before_filter :login_required, :except => [
응용 프로그램 컨트롤러 :
class ApplicationController < ActionController::Base
을 정의하는 방법을? –
AccountController는 https://github.com/JoeCohen/mushroom-observer/blob/ror4-joe/app/controllers/account_controller.rb – user2069311
에 정의되어 있습니다. –