根据一天中的时间,我有一个包含两个不同字符串的网页 - “美好的一天”或“晚安”。
有没有办法做某种assert_content(my_string)
检查是否存在两个给定字符串中的一个?
哪一个存在并不重要,只有一个存在。
答案 0 :(得分:3)
如果使用MiniTest,则可以使用assert_match
:
assert_match /Good day|Good night/, string
如果使用RSpec,则可以使用match
:
expect(string).to match /Good day|Good night/
答案 1 :(得分:2)
虽然Sebastian的答案只要在您去检查时加载页面就会起作用,但它会失去Capybaras等待/重试行为,并且如果用于在页面更改时检查内容,则会导致片状测试(立即点击按钮后等)。
使用minitest时,更好的解决方案是继续使用Capybara提供的assert_content
匹配器,但将其传递给正则表达式
assert_content(/Good day|Good night/)
如果使用RSpec,您可以执行相同的操作
expect(page).to have_content(/Good day|Good night/)
或者您可以以更具可读性的方式编写
expect(page).to have_content('Good day').or(have_content('Good night'))