1
使用Rails 3.1.0失敗和Ruby 1.9.2p290,我使用了清單10.30測試sample_app:Ruby on Rails的教程,第10.3.3節上測試
it "should paginate users" do
get :index
...
response.should have_selector("a", :href => "/users?page=2",
:content => "2")
...
end
結果是:
Failures:
1) UsersController GET 'index' for signed-in users should paginate users
Failure/Error: response.should have_selector("a", :href => "/users?page=2",
expected following output to contain a <a href='/users?page=2'>2</a> tag:
雖然返回的網頁包含以下行:
<a rel="next" href="/users?escape=false&page=2">2</a>
因爲我還是不明白have_s充分使用選民,包括它關係到正則表達式,我改變了如下測試:
it "should paginate users" do
get :index
...
response.should have_selector('a', :rel => "next",
:href => "/users?escape=false&page=2",
:content => "2")
end
,並得到:
Failures:
1) UsersController GET 'index' for signed-in users should paginate users
Failure/Error: response.should have_selector('a', :rel => "next",
expected following output to contain a <a rel='next' href='/users?escape=false&page=2'>2</a> tag:
<!DOCTYPE html>
...
雖然如我所提到的頁面包含下列表達式:
<a rel="next" href="/users?escape=false&page=2">2</a>
所以我我想我在試圖過濾這個表達式時做錯了什麼。 我對如何使用have_selector進行了一些調查,但我找不到任何有意義的東西。
任何幫助,將不勝感激。
可否請你添加一個鏈接到教程? – 2011-12-26 01:14:18