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