Использование Rails 3.1.0 и Руби 1.9.2p290, я использовал листинг 10.30, чтобы проверить sample_app:Рубин на Rails Tutorial, раздел 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>
Я Думаю, я делаю что-то не так, пытаясь отфильтровать это выражение. Я провел некоторое расследование о том, как работать с has_selector, но я не мог найти ничего значимого.
Любая помощь будет оценена по достоинству.
Не могли бы вы, пожалуйста, добавьте ссылку на учебник? –