编辑:,提供化合物匹配的答案是一个更优雅的解决方案:RSpec有一个内置的匹配器来查看一个字符串是一个值还是另一个值?
expect(@weathers.get_day_today).to eq('Today').or eq('Tonight')
原题:
我测试,如果值是“今天”或“今晚”。有一个内置的匹配器吗?还是比我做的更清洁的方法?
编辑:以下是我尝试做自定义测试,但它不起作用。这是一个不做的例子。
首先,添加自定义匹配器。
RSpec::Matchers.define :be_this_or_that do |expected|
match do |actual|
actual == expected.first or expected.last
end
end
其次,用它
expect(@weathers.get_day_today).to be_this_or_that(["Today", "Tonight"])
已经回答了:http://stackoverflow.com/questions/15143723/rspec-string-should-be-in-array。 | [数组]。应该包括(字) – tebayoso
这是一个不同的问题。我的问题并不局限于使用数组作为匹配值。 M.Karim提供了更短,更优雅的更好解决方案。谢谢。 –
'实际== expected.first或expected.last'这不会做你认为它的方式。 – stephenmurdoch