2011-05-03 40 views
0

有沒有更好的方法來做到這一點?定義一個測試,需要兩步才能通過rspec

describe '#reset_all' do 
    it 'should reset foo for all objects' do 
    manager.iterate_all 
    manager.reset_all 
    obj1.foo.should == 0 
    obj2.foo.should == 0 
    end 
end 

看來凌亂,因爲第二個「應==」行給我的「在無效的情況下無用使用==的」語法警告,如果兩方面的要求未能我也只得到一個錯誤。但是做一個單獨的測試似乎並不重要。

+0

foo是一個等於0的整數嗎?它也可能有助於提供更多關於你想要測試的內容。一般來說,每個測試用例可以有多個斷言。 – 2011-05-03 16:44:55

回答

2

您可以

(obj1.foo == 0 && obj2.foo == 0).should be_true 

做或

[obj1, obj2].all?{|o| o.foo == 0}.should be_true 

有報道的一個測試案例不止一個故障基本上是不可能的。