我有一个auth方法,想把它放在我的application_controller中。
class ApplicationController < ActionController::Base
helper_method :check_cred
def check_cred
"within check cred"
end
但如果我这样做
require 'spec_helper'
describe ApplicationController do
it 'should check_cred', task050: true do
check_cred.should == 'within check cred'
end
end
我明白了:
undefined local variable or method `check_cred' for #<RSpec::Core::ExampleGroup::Nested_9:0x007ff5e3e40558>
我如何调用这样的方法进行测试?
THX
答案 0 :(得分:0)
RSpec控制器规范包装ActionController::TestCase::Behavior,它提供了一些在测试期间使用的实例变量:
特殊实例变量
ActionController :: TestCase还将自动提供以下实例 用于测试的变量:
@controller
: 将要测试的控制器实例。
所以你可以做到以下几点:
it 'should check_cred', task050: true do
@controller.check_cred.should == 'within check cred'
end
或者,您可以将此帮助程序方法移出到单独的帮助程序模块中,并使用RSpec helper spec执行测试,这可能是构建此测试的更好方法。