【发布时间】:2014-03-04 17:09:21
【问题描述】:
我有一个这样的测试用例:
describe WorkCardsController do
it "something" do
work_card = instance_double(WorkCard, {:started?=>true} )
#some more code
end
end
当我运行 RSpec 时,我得到一个错误:
undefined method 'instance_double' for #<Rspec::Core::ExampleGroup::Nested_1::Nested_8::Nested_3:0x007f0788b98778>
根据http://rubydoc.info/github/rspec/rspec-mocks/RSpec/Mocks/ExampleMethods这个方法是存在的。所以我尝试通过以下方式直接访问它:
describe WorkCardsController do
it "something" do
work_card = RSpec::Mocks::ExampleMethods::instance_double(WorkCard, {:started?=>true} )
#some more code
end
end
然后我得到了一个非常令人惊讶的错误:
undefined method 'instance_double' for Rspec::Mocks::ExampleMEthods:Module
这与我上面链接的文档相反。
我错过了什么?
【问题讨论】:
-
你确定有rspec3吗?现在的gem版本是2.14,所以如果你没有通过github安装,那方法不存在也是正常的。
标签: ruby-on-rails ruby unit-testing rspec rspec-mocks