Возможно ли assert_equal ... или assert_equal ... `в мини-тесте ruby? - PullRequest
0 голосов
/ 16 мая 2018

Я создаю тест, который можно выразить как дизъюнкцию утверждений; когда первое утверждение проваливается, тогда оно должно смотреть на следующее. В частности, предмет будет равен одной из двух вещей. Какой я не знаю.

Мой код выглядит примерно так. Это не работает, но может дать вам представление о том, что я пытаюсь сделать.

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 голосов
/ 16 мая 2018

Если вы хотите сопоставить любой из объектов, имеющих указанное имя, вы можете использовать assert_include

asset_one = Cache.asset_one
asset_two = Cache.asset_two

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

Это должно решить вашу цель.

...