【问题标题】:Is `assert_equal ... or assert_equal ...` possible in ruby minitest?ruby minitest 中是否可以使用`assert_equal ...或assert_equal ...`?
【发布时间】:2018-05-16 09:58:39
【问题描述】:

我正在创建一个可以表示为断言析取的测试;当第一个断言失败时,它应该查看下一个。特别是,一个项目将等于两个事物之一。哪一个,我不知道。

我的代码看起来像这样。它不起作用,但它可能会让您了解我正在尝试做什么。

asset_one = Cache.asset_one
asset_two = Cache.asset_two

assert_equal(asset_one.name, Pages.name) or 
assert_equal(asset_two.name, Pages.name)

Pages.name 应与目标之一匹配。我不知道是哪一个。如果它与第一个不匹配,那么我希望它跳过它并尝试匹配第二个。

一如既往地感谢任何帮助。

【问题讨论】:

    标签: ruby testing minitest assertions


    【解决方案1】:

    如果你想匹配任何一个具有给定名称的对象,你可以使用assert_includes

    asset_one = Cache.asset_one
    asset_two = Cache.asset_two
    
    assert_includes([asset_one, asset_two].map(&:name), Pages.name)
    

    这应该可以解决您的目的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-16
      • 1970-01-01
      相关资源
      最近更新 更多