测试设备注册控制器与功能测试

时间:2012-07-02 12:58:18

标签: ruby-on-rails-3 devise functional-testing

我试图测试我的注册控制器(它会覆盖Devise的内置控制器),但是当我进行以下测试时:

test "should create user" do
    post :create, user: { email: "temp12345@email.com", first_name: @user.first_name}
    assert_redirected_to user_path(assigns(:user))
end

然而,回复的回复表示"您必须注册/登录才能继续"这没有任何意义,因为我可以从浏览器手动执行此操作以注册用户。

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

刚刚遇到同样的问题。答案在devise docs

  

2)如果您正在测试Devise内部控制器或控制器   继承自Devise,你需要告诉Devise哪个映射应该   在请求之前使用。这是必要的,因为Devise得到了这个   来自路由器的信息,但由于功能测试未通过   通过路由器,需要明确告知。例如,如果   您正在测试用户范围,只需执行以下操作:

@request.env["devise.mapping"] = Devise.mappings[:user]
get :new
相关问题