这是使用RSpec2 - 无论发生什么情况,当期望不匹配时,我似乎得到以下错误。我确信(虽然我不能尝试一段时间)在版本1中,以下代码会声明方法'methods'未被调用。
下面的代码片段演示了这个问题 - 当在初始化中取消注释方法时,测试将通过。删除注释并返回通用错误消息。
describe "Test" do
it "should do" do
my_mock = mock("my mock")
my_mock.should_receive(:methods)
obj = Shaun.new(my_mock)
end
end
class Shaun
def initialize(mock)
#mock.methods
end
end
错误
Failures: 1) Test should do C:/Program Files/Ruby/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.0.0/lib/rspec/core/formatters/base_formatter.rb:138:in `block in find_failed_line': undefined method `downcase' for nil:NilClass (NoMethodError) from C:/Program Files/Ruby/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.0.0/lib/rspec/core/formatters/base_formatter.rb:136:in `each' from C:/Program Files/Ruby/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.0.0/lib/rspec/core/formatters/base_formatter.rb:136:in `detect' from C:/Program Files/Ruby/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.0.0/lib/rspec/core/formatters/base_formatter.rb:136:in `find_failed_li ne' from C:/Program Files/Ruby/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.0.0/lib/rspec/core/formatters/base_formatter.rb:122:in `read_failed_li ne' from C:/Program Files/Ruby/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.0.0/lib/rspec/core/formatters/base_text_formatter.rb:27:in `block in d ump_failures'
答案 0 :(得分:1)
在这里工作正常,使用rspec 2.0.1和REE 1.8.7。需要再次检查1.9.2,因为我还没有在这个系统上使用它。
评论时:
Failures:
1) Test should do
Failure/Error: my_mock.should_receive(:methods)
(Mock "my mock").methods(any args)
expected: 1 time
received: 0 times
# ./test_rspec.rb:4