【发布时间】:2014-04-08 11:07:49
【问题描述】:
假设,我正在运行这个测试
Class MyModelTest < ActiveSupport::TestCase
def setup do
@mymodel = MyModel.new
end
@mymodel.stub(:method).and_return { true }
但我得到:undefined method 'stub' for nil:NilClass。我以为它与nil 实例有关,实际上当我用@mymodel 转储数据时,我收到相同的消息undefined method stub'。然后我试了@mymodel.stubs(:method).and_return { true },得到了这条消息
undefined method `and_return'
我该如何解决?
【问题讨论】:
-
您的原始代码是
rspec语法,而不是mocha语法 -
@UriAgassi 实际上,如果我实现上述响应并将
stub替换为stubs,它就可以工作。怎么会这样?我的代码rspec中包含什么类型代码,因为它可以与指定的修改一起使用? -
也许我把“语法”这个词弄糊涂了。我的意思是 API。
stub、and_return是rspec库的 API。stubs和return是mochaAPI 的一部分。 (@MarekLipka 在他的回答中有错字) -
非常感谢您
标签: ruby-on-rails ruby testing ruby-mocha