web-dev-qa-db-ja.com

キュウリ/カピバラ:ページにコンテンツがないことを確認しますか?

キュウリとカピバラを使用して、文字列がページに存在しないことを確認する方法はありますか?

たとえば、この手順の反対をどのように書けばよいですか。

Then /^I should see "(.*?)"$/ do |arg1|
  page.should have_content(arg1)
end

これはarg1が存在します。

失敗 if arg1 見つかった?

19
dB'

http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Matchers#has_no_text%3F-instance_method

has_no_contentカピバラのマッチャー。だからあなたは書くことができます

  Then /^I should not see "(.*?)"$/ do |arg1|
    page.should have_no_content(arg1)
  end
29

現在Rspec 3.4(2016)では、これはコンテンツがないことをテストするための推奨される方法です。

expect(page).not_to have_content(arg1)
13
Micah

should_notを使用して、少し読みやすくすることもできます。

Then /^I should not see "(.*?)"$/ do |arg1|
  page.should_not have_content(arg1)
end

その他の情報: https://www.relishapp.com/rspec/rspec-expectations/docs

8
Adam Sheehan

現在、次のものを使用できます。

Then /^I not see "(.*?)"$/ do |arg1|
  expect(page).to have_no_content(arg1)
end

コンテンツがページで見つかった場合、テストは赤です

4
Raphael Abreu

私はよくSO実際に機能する回答を探すために多くの時間を費やしています。多くの回答は機能しません(おそらく、以前の多くの回答は非推奨になっていますか?または、Rails/gemsのバージョンによって異なる場合があります)あなたが使用しています)。

しかし、私にとってこれは最終的にそれをしました:

expect(page).wont_have_content("Text you are looking for")
0
PolarisTLX