在ruby minitest中,`assert_equal ...或assert_equal ...`是否可能?

时间:2018-05-16 09:58:40

标签: ruby testing minitest assertions

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

我的代码看起来像这样。它不起作用,但它可能会让你知道我想要做什么。

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应匹配其中一个目标。我不知道哪一个。如果它与第一个匹配,那么我希望它跳过它并尝试匹配第二个。

任何帮助都是非常受欢迎的。

1 个答案:

答案 0 :(得分:3)

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

asset_one = Cache.asset_one
asset_two = Cache.asset_two

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

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