2016-10-27 3 views
0

私が使用して、本当に「ベスト」であるしかしイムわからない以前に(expect(page).to have_content('foo')カピバラpage.has_text?間違ったテキストで成功しましたか?

RSPECのマッチャーを使用していたので、私は可能であればほとんどカピバラのスコープに固執しようとしていた。ので、ちょうど、この間違ったを使用してたぶんイム

とにかく私は、サインインのポップアップテキストをチェックするコードの基本的な部分があります page.has_text?('Signed in successfully.')

右十分簡単に​​?テキストを次のように変更することができます。 page.has_text?('THIS IS WRONG')

それでも、私はそれを間違って使用していますか?

答えて

1

#has_text?は単なるブール値のメソッドです。trueまたはfalseを返します。アサーションではないので、応答が真か偽かをチェックしない限り、テストが失敗することはありません。以前

expect(page).to have_content('expected text') 

(あまりにhave_textとしてエイリアス)have_contentマッチャーを使用していたものを、あなたは正確に使用しなければならないRSpecのとページ上のテキストの存在を確認したい場合は、正確にするために設計さカピバラが提供するマッチャーです何をしているの。 あなたはもうRSpecのを使用していない場合、あなたは

page.assert_text('expected text') 
+0

を行うだろう、どちらか一方に何らかの利益がある(page.assertを使用しては、対(ページ)を期待する) – msmith1114

+0

RSpecのはRSpecのを使用して使用すると、彼らは「以来マッチャー場合より良いエラーメッシュを提供し、基本アサーションよりも多くのマッチャーが用意されています - http://www.rubydoc.info/gems/capybara/Capybara/RSpecMatchers –

関連する問題