2012-07-02 38 views
3

我想测试我的登记控制器(这将覆盖设计的内置控制器),但是当我做如下测试:试验设计登记控制器与功能测试

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

不过,回来的回应说“您必须注册/登录才能继续“,这是没有意义的,因为我可以通过浏览器手动执行此操作来注册用户。

任何想法?

回答

5

刚刚有同样的问题。答案是devise docs

2)如果你正在测试制定的内部控制器或从设计的 继承,你需要告诉设计映射关系应该 的请求之前可以使用一个控制器。这是必要的,因为Devise从路由器获取此信息,但由于功能测试不通过路由器传递 ,因此需要明确告知。例如,如果你 测试的用户范围,简单地做:

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