定义一个需要两个步骤才能通过rspec的测试

发布于 2024-11-04 16:42:00 字数 322 浏览 0 评论 0原文

有更好的方法吗?

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 上下文中无用使用 ==”,并且如果两个要求都失败,我也只会收到一个错误。但它似乎还没有重要到需要进行单独的测试。

Is there a better way to do this?

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

It seems messy because the second "should ==" line gives me a syntax warning of "useless use of == in void context", and I also only get one error if both requirements fail. But it doesn't seem important enough to make a separate test.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寂寞美少年 2024-11-11 16:42:00

您可以使用

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

或 with

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

来完成此操作 为一个测试用例报告多个失败基本上是不可能的。

You can do it with

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

or with

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

Having more than one failure reported for one test case is basically not possible.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文