【发布时间】:2015-09-02 09:30:21
【问题描述】:
我正在测试我的模块,我决定将它与匿名类进行测试:
subject(:klass) { Class.new { include MyModule } }
MyModule 在klass 中使用方法name。为了让我的规范工作,我需要存根这个方法name(这是未实现的)。于是我写了:
subject { klass.new }
allow(subject).to receive(:name).and_return('SOreadytohelp') }
但它引发了:
RSpec::Mocks::MockExpectationError: #<#<Class:0x007feb67a17750>:0x007feb67c7adf8> does not implement: name
from spec-support-3.3.0/lib/rspec/support.rb:86:in `block in <module:Support>'
如何在不定义的情况下存根这个方法?
【问题讨论】:
-
我不知道这是否是答案,但您有错字;
subjet { klass.new }。不应该是:subject { klass.new }(缺少“c”)。试试看,让我们知道!
标签: ruby-on-rails ruby ruby-on-rails-4 rspec