2017-08-28 4 views
0

ナビゲーション内の各リンクを正規表現と照合してチェックします。このようなコードを使用する前に、さまざまなリンクの同じナビゲーションを確認しました。Rails:assert_selectブロックで正規表現を使用することができません

assert_select "nav.active" do |nav| 
    assert_select nav, "a[href=?]", edit_post_path(post), count: 0 
end 

docsに見られるように、私は正規表現を使って同様のことをすることができません。私は(それらの両方を目的にコメントアウト)これらのバリエーションを使用して試してみた:

失敗し、出力はこの
assert_select "nav.active" do |nav| 
    #assert_select "a[href=?]", /.+/ 
    #assert_select nav, "a[href=?]", /foo/, count: 1 
end 

Minitest::Assertion: Expected exactly 1 element matching "a[href=/.+/]", found 0.. 

または

Minitest::Assertion: Expected exactly 1 element matching "a[href=/foo/]", found 0.. 

は私が間違って何をやっています?

答えて

0

今日、私はこの質問に似た回答を探していました。私はちょうど私のテストに成功し、この行を使用:

assert_select "input:match('value',?)", /Clear search:/, count: 0 

ので、以下は動作するはずです。

#assert_select "a[href=?]", /.+/ 
assert_select "a:match('href',?)", /.+/ 

#assert_select nav, "a[href=?]", /foo/, count: 1 
assert_select "a:match('href',?)", /foo/, count: 1 

Rails 5はNokogirlのassert_selectの実装を使用しています。そのドキュメントに基づいて、私はあなたがループ内のnavへの参照を必要としないと思います。 https://github.com/kaspth/rails-dom-testing/blob/master/lib/rails/dom/testing/assertions/selector_assertions.rb

関連する問題