设计和声明授权功能测试问题

发布于 2024-10-11 10:54:33 字数 196 浏览 5 评论 0原文

在使用设计和声明性授权时,我在使功能测试正常工作时遇到了很大的麻烦。我可以使用设计测试助手来登录用户,然后将 current_user 变量填充到控制器中。但是一旦我使用 post_with 测试助手进行声明性授权, current_user 就变成 nil 。

有人可以给我举一个例子,说明如何在一起使用设计和声明性授权时编写功能测试吗?

谢谢

I am having awful trouble getting functional tests to work when using devise and declarative authorization. I can use the devise test helpers to sign_in a user and then the current_user variable is populated in the controller. But as soon as I use the post_with test helper for declarative authorization the current_user becomes nil.

Can anybody point me at an example of how to write functional tests when using devise and declarative authorization together?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

酒中人 2024-10-18 10:54:33

我也有同样的问题。
您不能在带有 devise 的功能测试中使用声明性授权 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

希望有所帮助。

I had the same problem.
You can't use declarative authorizations testhelper such as post_with in functional tests with devise.

For functional test you mus use the devise testhelper such as sign_in and sign_out. I've wrote a helper which uses the devise test helper methods for functional tests:

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

This helper i use in the following way:

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

Hope that helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文