Сбой интеграционного теста в модификации Hartl sample_app - PullRequest
0 голосов
/ 16 июля 2011

Я пытаюсь немного изменить функциональность 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; выдает ошибку в зависимости от того, кто из них первый.

Кстати, страницы работают нормально. Это только тест, который не проходит.

Какие-нибудь подсказки для невежественных?

1 Ответ

0 голосов
/ 06 августа 2011

Edit: оказывается, я ошибаюсь, fill_in принимает символы. Оригинальный пост ниже.

Что произойдет, если вы измените символы: baremail и: question на строки? Насколько я могу судить, fill_in не принимает символы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...