2011-07-22 5 views
2

私は10人のユーザーのリストを持つページがあるとします。 10個のユーザーの表示リンクをテストするにはどうすればよいですか?capybara hrefパターンで複数のリンクをテストする方法

Then /^I should see a list of (\d+) users$/ do |num| 
    page.should have_selector('a', {:href=>"users/*", :count => num}) 
    end 

そして、この:

Then /^I should see a list of (\d+) users$/ do |num| 
    page.should have_selector('a', {:href=>/users\/\d+/, :count => num}) 
    end 

しかし、両方のリターンが期待CSS "" 何かを返す(RSpecの::期待:: ExpectationNotMetError)

私はこれを試してみました

:ただし、:countパラメータを省略すると、テストは:href paramの中に私が持っているもの(間違ったパターンさえ)を常に渡します。

+0

解決策ではありませんが、正規表現を気にするのではなく、リンクに「ユーザー」クラスを追加する方が簡単でしょうか? –

+0

これは解決策かもしれませんが、私はマークアップに頼ることはしたくありませんでした。 user_pathは私のページでは変わらないと確信しています。 – demental

答えて

5

私はこのためcontains機能でXPathを使用します。

page.should have_xpath("//a[contains(@href,'users')]"), :count => num) 

は、テキスト「ユーザ」を含むhref属性を持つ任意のa要素のnum出現と一致する必要があります。

関連する問題