gpt4 book ai didi

ruby-on-rails-3.2 - 使用 rspec 测试 acts_as_tenant

转载 作者:行者123 更新时间:2023-12-05 08:44:06 24 4
gpt4 key购买 nike

我有一个使用 ascts_as_tenant 的 Multi-Tenancy 应用程序。我正在尝试编写一个测试范围的规范。所以我想测试 User.active 的输出。

一般来说,这可以很好地处理如下代码

it "returns a correct active user" do
user_active = Fabricate(:user, curremp: true)
user_scope2_active = Fabricate(:user, curremp: true)
user_not_active = Fabricate(:user, account_id: user_active.account_id, curremp: false)
expect(User.active).should include(user_active)
#expect(User.active).to_not include(user_scope2_active)
expect(User.active).to_not include(user_not_active)
end

但是,我不知道如何使用 acts_as_tenant 功能来使用 current_tenant 并因此验证它仅列出来自一个租户的事件用户。我敢肯定这已经完成了,但我还没有找到任何关于它的文档。

因此,如何使用 rspec 测试 acts_as_tenant 用户模型?

最佳答案

这就是我们所做的:

一般来说,您不需要在单元测试中处理将信息范围限定到租户的问题。因此,只需编写这些测试,就好像没有进行范围界定一样。

唯一的异常(exception)是如果您想专门测试与范围界定相关的内容。我们很少这样做。 Acts_as_tenant 有自己的测试套件来测试范围(但我会这么说,因为我写了它;)。

如果您必须在单元测试中处理 AaT,您可以直接设置 current_tenant:

ActsAsTenant.current_tenant = Account.first

然后重要的是在后过滤器中清理该租户(将其设置为 nil),否则您将陷入调试 hell 。

关于ruby-on-rails-3.2 - 使用 rspec 测试 acts_as_tenant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16083008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com