问题描述
||
我有一个特殊的情况-rspec文件在独立运行时会失败,但是在作为整个套件的一部分运行时会运行正常。
Failure/Error: visit oauth_callback_path
NoMethodError:
undefined method `action\' for MyController:Class
# <internal:prelude>:10:in `synchronize\'
# ./spec/requests/login_spec.rb:xx:in `block (5 levels) in <top (required)>\'
# ./spec/requests/login_spec.rb:xx:in `block (4 levels) in <top (required)>\'
简化规格:
require \'spec_helper\'
class MyController
def oauth_response
sign_in(
ENV[\'TEST_ACCESS_TOKEN\'],ENV[\'TEST_ACCESS_SECRET\'])
redirect_to root_path
end
end
describe \'logging in\' do
it \'login\' do
visit oauth_callback_path
response.should be_success
end
end
解决方法
我相信问题在于
MyController
没有扩展ApplicationController
。这就是为什么未为MyController
定义方法action
的原因。
,ѭ6似乎阻止了Rails魔法类的加载。测试应该明确地将控制器设置为“ 7”,或者应使用“ 8”来定义扩展名