我正在编写一个rspec测试 - 由于某种原因,我被告知方法any_instance是未定义的。我很惊讶,因为我在我的一个控制器rspec文件中有一个非常相似的期望 - 它工作正常。任何想法为什么会发生这种情况?
require 'spec_helper'
describe Subscriber do
it {should belong_to :user}
describe "send_message should use mobile to send message" do
subscriber = Subscriber.new(:number => "123")
Mobile.any_instance.should_receive(:send_sms).with("123")
subscriber.send_message("hello!")
end
end
错误
/subscriber_spec.rb:9:in `block (2 levels) in <top (required)>':
undefined method `any_instance' for Mobile:Class (NoMethodError)
我的rspec版本(取自我的gemfile)
gem“rspec-rails”,“&gt; = 2.11.0”,:group =&gt; [:开发,:测试]
谢谢!
答案 0 :(得分:7)
非常明确:您没有将测试包裹在it
块中。就是这样。