【问题标题】:Rails Minitest assert_equal 200 || 304Rails Minitest assert_equal 200 || 304
【发布时间】:2017-04-19 16:52:59
【问题描述】:

我使用 Minitest,我想知道是否可以使用 200 或 304 page.status_code 成功测试。

不清楚,但我试过这个:

assert_equal 200 || 304 ,  page.status_code

声音不起作用。

所以有办法实现这一点。

谢谢

【问题讨论】:

  • 您能否在一个方法中响应多个状态?我的意思是没有 AJAX 交互。如果我错了,请纠正我,只是为了知道。
  • 实际上我正在使用 Ajax,当我启动 rake 时,我的测试以随机方式进行,有时它会通过或失败,因为我只是在等待 200 和 304 的到来。所以这就是我的问题。也许是一种避免这种随机的方法?

标签: ruby-on-rails testing minitest


【解决方案1】:

据我从测试和挖掘文档中得知,assert_equalassert_response 都只会取一个值。

我不知道是否建议这样做,但您可以断言响应代码是其中一个。

test 'should get right code' do
  get some_path
  assert status === 200 || status === 304
end

【讨论】:

    【解决方案2】:

    我会用assert_includes(array, object) 来解决这个问题,它测试objectarray 中。

    在您的示例中,这将是:

    assert_includes [200, 304], page.status_code
    

    文档:https://ruby-doc.org/stdlib-2.0.0/libdoc/minitest/rdoc/MiniTest/Assertions.html#method-i-assert_includes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-01
      相关资源
      最近更新 更多