ruby-on-rails – 控制器规范未在我的工厂创建的用户中登录
发布时间:2020-12-17 03:02:06 所属栏目:百科 来源:网络整理
导读:我的课程控制器的控制器测试有问题.似乎设计没有正确登录我的用户.此控制器的所有生成的控制器测试仅失败. 我使用Factory-girl在users.rb中创建我的用户,如下所示…… FactoryGirl.define do factory :user do sequence :email do |n| "test#{n}@email.com"
我的课程控制器的控制器测试有问题.似乎设计没有正确登录我的用户.此控制器的所有生成的控制器测试仅失败.
我使用Factory-girl在users.rb中创建我的用户,如下所示…… 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" 这里的任何帮助将不胜感激. 解决方法
我自己就是这么想的.从删除调用中删除valid_session.这似乎覆盖了使用设计测试助手定义的会话.
其他一切似乎都是正确的.保留所有设计设置代码,只需将规范中的删除行更改为: delete :destroy,{:id => course.to_param} 我还在我之前的(:每个)块中保留了以下行,您注释掉了.不知道它做了什么: @request.env["devise.mapping"] = Devise.mappings[:user] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |