тест подписаться с разработкой - PullRequest
1 голос
/ 11 апреля 2011

Разработать 1,2 рубина на рельсах

У меня проблемы с тестированием. Когда пользователь нажимает кнопку регистрации, он входит в систему, и я должен увидеть флэш-сообщение. Это работает, но мой тест не пройден. Не уверен почему. Как работает регистрация? есть ли какое-то внутреннее перенаправление, которое происходит? Этот шаг не выполняется:
Then I should see "You have registered successfully. If enabled, a confirmation was sent your e-mail."

Подтверждение не включено в моей модели пользователя.

1 Ответ

5 голосов
/ 11 апреля 2011

Технически, вы не должны испытывать необходимость в модульном тестировании механизма разработки - сам камень хорошо протестирован.Я могу понять, что хочу убедиться, что он ведет себя так, как вы его настроили, поэтому:

Devise определенно перенаправляет после успешной аутентификации.Он установит флэш-сообщение, а затем перенаправит либо к тому, что вы указали в качестве корневого в вашем файле маршрутов, либо, если вы попытались получить доступ к странице на сайте и были перенаправлены на страницу входа, он перенаправит вас обратно на страницу, которую выпытались получить доступ.

Для вашего теста попробуйте проверить, что вы перенаправлены на то, что вы указали в качестве пользователя root в файле rout.rb fil.Т.е. в инструкциях устройства написано, что нужно установить его как

root :to => "home#index"

Итак, в вашем тесте попробуйте что-то вроде этого:

require 'spec_helper'

    describe YourController do
      include Devise::TestHelpers

      before (:each) do
        @user = Factory.create(:user)
        sign_in @user
      end

      describe "GET 'index'" do
        it "should be successful" do
          get 'index' 
          response.should be_success
        end
        it "should redirect to root" do
          get 'index'
          response.should redirect_to(root_url)
      end
    end

Вы можете добавить свойтест флеш-сообщения на это также.Надеюсь, это поможет!

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