我正在创建一个可以表示为断言断开的测试;当第一个断言失败时,它应该看下一个断言。特别是,项目将等于两件事之一。哪一个,我不知道。
我的代码看起来像这样。它不起作用,但它可能会让你知道我想要做什么。
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
应匹配其中一个目标。我不知道哪一个。如果它与第一个匹配,那么我希望它跳过它并尝试匹配第二个。
任何帮助都是非常受欢迎的。
答案 0 :(得分:3)
如果要匹配具有给定名称的任何一个对象,可以使用assert_includes
asset_one = Cache.asset_one
asset_two = Cache.asset_two
assert_includes([asset_one, asset_two].map(&:name), Pages.name)
这应该可以解决你的目的。