我有一个 Controller ,它有一些特殊的身份验证,因为它实际上是一个可用于特定远程系统的 API。

在 RSpec (2.7) 中,我想绕过该身份验证,但似乎无法使其正常工作。从我读到的,我应该做这样的事情:

controller.stub!(:restrict_soa_access).and_return(true)

但如果我这样做,我只会得到:
spec/controllers/soa/user_controller_spec.rb:42: undefined method `stub!'
for #<RSpec::Core::Hooks::AfterHooks:0xb673a8dc> (NoMethodError)

作为对评论的回应,我也尝试使用 Soa::UserController.stub! ,当我得到 nil:NilClass 的未定义方法时,它给出了相同的错误,还有 @controller.stub!

我不存任何其他东西。我需要做些什么来启用 stub ,还是我的 stub 代码是错误的?

最佳答案

我有一个类似的问题,解决了以下要求:

require 'rspec/mocks'
require 'rspec/mocks/spec_methods'
require 'rspec/mocks/standalone'

如果这对你有用,你能回来报告吗?

关于ruby-on-rails - RSpec - 如何 stub Controller 方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8056400/

10-14 03:14