Я пытаюсь немного изменить функциональность Hartl's Ruby On Rails Tutorial и получаю совершенно загадочную ошибку из моего нового интеграционного теста.
Это на странице регистрации. Вместо полей имени пользователя, электронной почты и пароля у меня есть только поля электронной почты и вопросы. (Не большое изменение, верно?) Форма идентична за исключением переименованных полей (и я использую поле: baremail для незашифрованной электронной почты - я шифрую адрес электронной почты для базы данных). Конфигурация маршрута такая же (соответствует '/ signup',: to => 'users # new').
Вот соответствующая часть файла spec / запросы / users_spec.rb:
require 'spec_helper'
describe "Users" do
describe "signup" do
describe "failure" do
it "should not accept a bogus email" do
lambda do
visit signup_path
fill_in "Question", :with => ""
fill_in :baremail, :with => " bogus email"
click_button
response.should render_template('users/new')
response.should have_selector("div#error_explanation")
end.should_not change(User, :count)
end
it "should not accept a question without an email" do
lambda do
visit signup_path
fill_in :question, :with => "What, me worry?"
fill_in :baremail, :with => ""
click_button
response.should render_template('users/new')
response.should have_selector("div#error_explanation")
end.should_not change(User, :count)
end
(Обратите внимание, что эти два теста используют два разных протокола для fill_in.)
Вот что я получаю в ответ:
1) Users signup failure should not accept a bogus email
Failure/Error: fill_in "Question", :with => ""
Nokogiri::CSS::SyntaxError:
unexpected '(' after 'DESCENDANT_SELECTOR'
# ./spec/requests/users_spec.rb:11:in `block (5 levels) in <top (required)>'
# ./spec/requests/users_spec.rb:9:in `block (4 levels) in <top (required)>'
2) Users signup failure should not accept a question without an email
Failure/Error: fill_in :question, :with => "What, me worry?"
Nokogiri::CSS::SyntaxError:
unexpected '(' after 'DESCENDANT_SELECTOR'
# ./spec/requests/users_spec.rb:22:in `block (5 levels) in <top (required)>'
# ./spec/requests/users_spec.rb:20:in `block (4 levels) in <top (required)>
... и т.д.. Я попытался заменить signup_path на строку (в случае, если signup_path не был определен), безрезультатно. Я поменял местами строки: question и: email в файле Rspec; выдает ошибку в зависимости от того, кто из них первый.
Кстати, страницы работают нормально. Это только тест, который не проходит.
Какие-нибудь подсказки для невежественных?