2011-01-09 51 views
1

我在使用设计和声明授权时使功能测试工作时遇到了很多麻烦。我可以使用设计测试助手来签名用户,然后在控制器中填充current_user变量。但只要我使用post_with测试助手进行声明授权,current_user将变为零。设计和声明授权功能测试问题

任何人都可以指出我如何编写功能测试时使用设计和声明授权在一起的例子吗?

谢谢

回答

1

我有同样的问题。 您不能在设计的功能测试中使用声明性授权testhelper,例如post_with。

对于功能测试你可以使用设计测试帮助器,如sign_in和sign_out。我已经写了其使用功能测试的测试色器件辅助方法帮手:

def test_with_user(user, &block) 
    begin 
    sign_in :user, users(user) 
    yield 
    ensure 
    sign_out :user 
    end 
end 

这帮助我以下列方式使用:

test_with_user(:max) do 
    get :new 
    assert_response :success 
end 

希望有所帮助。

+0

辉煌的解决方案谢谢 - 效果很好! – 2011-01-11 21:02:07