我遇到了一个令人沮丧的问题,应该是一个非常简单的黄瓜测试。该测试尝试在不输入任何表单数据的情况下提交一个简单的表单,并期望看到一条错误消息:
Given(/^a user visits the account confirmation page$/) do
visit root_path
end
When(/^the user enters an improperly formatted email address$/) do
click_button "START"
end
Then(/^the user should see an error message$/) do
page.should have_selector("error")
end
错误消息元素由 JQuery 附加,并被赋予 css 类“错误”。它附加到的页面中的元素具有 css 类“Forms-TextError”。这个跨度是基本 html 的一部分。
<span id="email_error" class="Forms-TextError">
<span class="error" for="email">Please provide your contact email</span>
</span>
问题是 have_selector 不会找到错误范围。它也不会找到它的父跨度。有人会认为它适用于这种情况,因为该跨度是基本 html 的一部分。
我究竟做错了什么?