定义一个需要两个步骤才能传入rspec的测试

时间:2011-05-03 16:36:52

标签: ruby-on-rails ruby 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

它似乎很乱,因为第二个“should ==”行给了我一个语法警告“在void上下文中无用的使用==”,如果两个要求都失败,我也只会得到一个错误。但是,进行单独测试似乎并不重要。

1 个答案:

答案 0 :(得分:2)

你可以用

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

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

一个测试用例报告了多个失败基本上是不可能的。