我正在尝试使用Capybara为我的rails应用程序实现一些功能测试。
现在我在坚持。
我的html中有一个元素,如下所示:
<p class="no-stars">
<strong class="">No stars:</strong>0
</p>
我的测试看起来像这样:
test "should increase the number of stars for a user" do
Capybara.current_driver = Capybara.javascript_driver
visit users_path
click_link('John F. Kennedy')
assert page.has_content?('No stars: 0'), 'no matching content found!'
page.find("input[value='+1']").click
assert page.has_content?('No stars: 1'), 'no matching content found!'
end
在我看来,我的测试失败了,因为找不到内容'No stars:0'。
有没有人能解决这个问题?
答案 0 :(得分:1)
在你的html中,:和0之间没有空格,但在你的测试中有一个会导致失败的空间。
另外,Capybara提供了一些断言(assert_text,assert_selector,assert_no_text,...),这些断言可以使事情读得更好,并提供更详细的错误消息。而不是断言page.has_content ......你可以做
page.assert_text('No stars:0')