У меня проблема с тестами моего контроллера для моего контроллера курсов.Кажется, что devise не входит в мой пользователь правильно.Все сгенерированные тесты контроллера только для этого контроллера терпят неудачу.
Я создаю своего пользователя в users.rb, используя Factory-girl, как показано ниже ...
FactoryGirl.define do
factory :user do
sequence :email do |n|
"test#{n}@email.com"
end
password "password"
password_confirmation "password"
end
end
Затем в моем courses_controller_spec.rb Я имитирую логин, как показано ниже ..
require 'spec_helper'
describe CoursesController do
include Devise::TestHelpers
before(:each) do
#@request.env["devise.mapping"] = Devise.mappings[:user]
user = Factory.create(:user)
user.toggle!(:admin)
sign_in user
end
describe "DELETE destroy" do
it "redirects to the courses list" do
course = Factory.create(:course)
delete :destroy, {:id => course.to_param}, valid_session
response.should redirect_to(courses_url)
end
end
И получаю вывод ...
Failure/Error: response.should redirect_to(courses_url)
Expected response to be a redirect to <http://test.host/courses> but was a redirect to <http://test.host/users/sign_in>
Обратите внимание, что я также использовал следующее в моем spec_helper.rb
config.include Devise::TestHelpers, :type => :controller
И я пробовал это в соответствии с https://github.com/plataformatec/devise/wiki/How-To:-Controllers-and-Views-tests-with-Rails-3-%28and-rspec%29
В моих спецификациях запроса я могу создать пользователя и войти в систему, используя нижеприведенную таблицу, которая отлично работает, но я быхотел бы, чтобы все тесты контроллера работали также
fill_in "Email", :with => user.email
fill_in "Password", :with => user.password
click_button "Sign in"
Любая помощь здесь будет высоко ценится.