私は、ビューがではないことを確認することが望ましいアプリケーションを作成しています。特に、その機能が特定のセキュリティグループのユーザーにのみ提示される必要があるため、にはいくつかの機能があります。私は、メニューがではなく、であることを確認するために、assert_selectsの反対を探しています。assert_selectの反対ですか?
答えて
は、ここにドキュメントを見てみましょう:ドキュメントから
http://apidock.com/rails/ActionController/Assertions/SelectorAssertions/assert_select
:
assert_selectはassertion that selects elements and makes one or more equality tests.
および同等性テストs ections:
等価試験は、次のいずれかであってもよい。
真 - 少なくとも一つの元素が選択された場合、アサーションは真です。
false - アサーションは、要素が選択されていない場合はtrueです。
文字列/正規表現 - 少なくとも1つのテキスト値が 要素の文字列または正規表現と一致する場合、アサーションは真です。
整数 - アサーションは、その要素の数が の場合に真です。
範囲 - アサーションは、選択した要素の数が の範囲に該当する場合にtrueになります。
同等性テストが指定されていない場合、アサーションは、少なくとも1つが 要素が選択されている場合はtrueです。
、簡単な例:
# Page contains no forms
assert_select "form", false, "This page must contain no forms"
あなたは簡単に独自に定義することができます。
module ActionDispatch::Assertions::SelectorAssertions
def assert_no_select(*a,&b) # try to think of a better name!
begin
assert_select(*a,&b)
rescue AssertionFailedError
return
end
raise "fail" # there should be a better built-in alternative
end
end
あなたは常に数に渡すことができます忘れて、ゼロにそれを設定しないでください。
assert_select "a", {count: 0, text: "New"}, "This page must contain no anchors that say New"
これは私にとっては機能しません。要素が見つかった場合でも例外は発生しません。 –
更新: 'body'以外の要素については正常に動作しています。 –
お役立ち情報ありがとう@MatijsvanZuijlen – GantMan
多くのボタンのうち、「削除」ボタンがないことを確認するためにこの問題が発生しました。既にいくつかのボタンがあるので、この状況では受け入れられた答えは機能しません。
assert_select '.button' do |btn|
btn.each do |b|
assert_no_match 'Delete', b.to_s
end
end
しかし、私は本当にガントマンの答えが良いのが好きです!
- 1. __add__の反対ですか?
- 2. awakeFromNib反対ですか?
- 3. Rails 3 RSpecとassert_select
- 4. "svn up"の反対ですか?
- 5. evt.preventDefault()の反対は何ですか?
- 6. git cherry-pickの反対ですか?
- 7. XPath:string()関数の反対ですか?
- 8. オブザーバーパターンの反対は何ですか?
- 9. `unpack(" m ")`の反対は何ですか?
- 10. Aptana svn:コミットの反対ですか?
- 11. od(1)の反対は何ですか?
- 12. 反対
- 13. os.path.commonprefixの反対
- 14. 構造とは反対ですか?
- 15. 反対側のネイティブビューに反応する
- 16. JQuery find()の反対
- 17. Linq:テイクの "反対"?
- 18. BSTの反復型対反復型ソリューション
- 19. Laravel - 1対多の関係でsaveメソッドの反対は何ですか?
- 20. AngularJSの$ routeChangeSuccessの反対
- 21. Type.MakeByRefTypeの反対の意味
- 22. OracleのINTERSECTの反対
- 23. lodashでは、 `pairs()`の反対は何ですか?
- 24. RubyでArray#rejectの反対は何ですか?
- 25. sql IN()文の反対側
- 26. ASP.NET MVC:[承認]の反対
- 27. "ActionView :: Helpers :: TextHelper.auto_link"の反対
- 28. git add-ofの反対-p
- 29. javascriptの(objの "key")の反対は何ですか?
- 30. jQueryの "change()"イベントの反対は何ですか?
否定が評価される前に 'AssertionFailedError'が発生するので、これはうまくいきません。 – gertas
良い点!編集されました。 –