Ruby on rails 过滤器前集成测试Authlogic:需要\u管理\u用户问题
尽管创建了管理员用户会话,但我无法访问集成测试中需要管理员用户的URL。我的测试因302错误而失败Ruby on rails 过滤器前集成测试Authlogic:需要\u管理\u用户问题,ruby-on-rails,integration-testing,authlogic,Ruby On Rails,Integration Testing,Authlogic,尽管创建了管理员用户会话,但我无法访问集成测试中需要管理员用户的URL。我的测试因302错误而失败 class NewsItemsController < ApplicationController before_filter :require_admin_user, :except => [:show, :index, :feed] etc... end --test/inetgration/admin_stories.rb -- require 'test
class NewsItemsController < ApplicationController
before_filter :require_admin_user, :except => [:show, :index, :feed]
etc...
end
--test/inetgration/admin_stories.rb --
require 'test_helper'
class AdminStoriesTest < ActionController::IntegrationTest
fixtures :all
setup :activate_authlogic
# if user is an admin he can create a new news_item
def test_creating_a_news_item
assert UserSession.create(users(:admin))
get "news_items/new"
assert_response :success
#etc...
end
end
我的fixtures文件名为roles_users.yml,正如您所期望的那样-因此不确定如何解决此问题…我认为新操作正在重定向到登录屏幕 这是因为您未登录。尝试:
get "news_items/new", {}, { 'user_id' => 0 }
或者用户id实际上是什么
第一个散列是请求散列,第二个是会话散列。您可能还需要将include Authlogic::TestCase放入类中。来自我的应用程序(rspec,但想法相同) 您的应用程序是否需要激活用户?如果是,这个用户是谁
如果那没用的话。可能粘贴一些调试输出,可能检查创建的用户 我在集成测试中也遇到了Authlogic问题,下面的修复(来自)对我来说是一个成功的解决方法 替换:
assert UserSession.create(users(:admin))
与:
获取“news\u items/new”{},{'user\u id'=>'1'}没有帮助-仍然获取302错误事实上,这是用于restful\u身份验证您有角色用户模型吗?没有,我有角色和用户之间的habtm关联
describe InvitationsController do
include Authlogic::TestCase
setup :activate_authlogic
describe 'sending invitations' do
.........
assert UserSession.create(users(:admin))
post 'user_session', :user_session => {:email => 'someone@example.com', :password => 'password'}