这是我正在测试的包含在Foo.rb中的类:
class Foo
def bar
return 2
end
end
这是Foo_spec.rb中包含的我的测试:
require "./Foo.rb"
describe "Foo" do
before(:all) do
puts "#{Foo == nil}"
Foo.any_instance.stub(:bar).and_return(1)
end
it "should pass this" do
f = Foo.new
f.bar.should eq 1
end
end
我得到以下输出:
false
F
Failures:
1) Foo Should pass this
Failure/Error: Foo.any_instance.stub(:bar).and_return(1)
NoMethodError:
undefined method `any_instance_recorder_for' for nil:NilClass
# ./Foo_spec.rb:6:in `block (2 levels) in <top (required)>'
Finished in 0 seconds
1 example, 1 failure
Failed examples:
rspec ./Foo_spec.rb:9 # Foo Should pass this
我已经查阅了文档,给出的示例正在我的机器上传递(所以它不是 rspec 代码的问题),但它没有给我任何关于我可能做错了什么的信息。错误消息也很令人困惑,因为它告诉我不要调用.any_instance
a nil:NilClass
,但正如我用我的输出证明的那样,Foo
is not nil
。我应该如何调用.any_instance.stub
我的自定义对象?
我正在使用 Ruby1.9.3
和 rspec 2.14.5
。