Ruby on rails 定义需要两个步骤才能通过rspec的测试
有更好的方法吗Ruby on rails 定义需要两个步骤才能通过rspec的测试,ruby-on-rails,ruby,rspec,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上下文中无用地使用==”的语法警告,如果两个需求都失败了,我也只会
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上下文中无用地使用==”的语法警告,如果两个需求都失败了,我也只会得到一个错误。但这似乎还不够重要,无法单独进行测试 你可以用
(obj1.foo == 0 && obj2.foo == 0).should be_true
或与
[obj1, obj2].all?{|o| o.foo == 0}.should be_true
对于一个测试用例,报告多个故障基本上是不可能的。foo是应该等于0的整数吗?它还可能有助于提供更多的上下文,以了解您要测试的内容。一般来说,每个测试用例可以有多个断言。