我正在使用rails Minitest编写一个测试用例,我有两个场景,第一个是:
assert_select "button.btn[type=submit]", I18n.t('pay_and_post_job')
但是当我运行它然后我得到一个错误
预计至少有1个元素匹配“button.btn [type = submit]” 0 .. 预期0为> = 1。
但如果我写出相同的断言:
assert "button.btn[type=submit] #{I18n.t('pay_and_post_job')}"
然后测试正在通过
有人可以向我解释这到底发生了什么?
答案 0 :(得分:1)
assert
和assert_select
来自两个截然不同的工具包。第一个是非常通用的,只测试它的第一个参数是否为真值。 assert "button"
将始终通过,因为"button"
是真实的。
另一方面,assert_select
来自Rails并测试你的html输出。尝试减少测试语句,直到它通过,如果assert_select "[type=submit]"
仍然使您的模板中的某些错误失败。我的赌注是assert_select "input.btn[type=submit]"
将通过。