Rails Capybara功能测试断言page.has_content?失败

时间:2015-12-04 21:15:54

标签: ruby-on-rails testing capybara-webkit

我正在尝试使用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'。

有没有人能解决这个问题?

1 个答案:

答案 0 :(得分:1)

在你的html中,:和0之间没有空格,但在你的测试中有一个会导致失败的空间。

另外,Capybara提供了一些断言(assert_text,assert_selector,assert_no_text,...),这些断言可以使事情读得更好,并提供更详细的错误消息。而不是断言page.has_content ......你可以做

page.assert_text('No stars:0')