2010-10-29 18 views
2

這是使用RSpec2 - 無論發生什麼事情,當期望不匹配時,我似乎得到以下錯誤。我敢肯定(雖然我不能嘗試一段時間)在版本1中,下面的代碼會聲明方法'方法'沒有被調用。RSpec - 通用故障消息,而不是有用的輸出

下面的代碼片段演示了這個問題 - 當在初始化中取消註釋該方法時,測試會通過。刪除註釋並返回通用錯誤消息。

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' 

回答

1

正常工作在這裏,使用RSpec 2.0.1和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 
+0

刪除2.0和重新安裝操作系統2.0.1版本,它的作品。很奇怪。至少有兩個人看起來有這個問題,而不僅僅是我自己。 – Finglas 2010-10-29 10:47:00