3

我正在尝试测试我的注册控制器(它覆盖了 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

但是,返回的响应显示“您必须注册/登录才能继续”,这没有任何意义,因为我可以从浏览器手动执行此操作以注册用户。

有任何想法吗?

4

1 回答 1

5

只是有同样的问题。答案在设计文档中:

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

@request.env["devise.mapping"] = Devise.mappings[:user]
get :new
于 2012-10-03T17:29:04.253 回答