如何为 FactoryGirl 构建创建 user_id?
How do I create an user_id for a FactoryGirl build?
我是 FactoryGirl、Faker 和更广泛测试的新手。
我认为我需要向我的用户添加一个由 FactoryGirl 创建的 ID,以评估用户是否可以访问某些页面 and/or 对某些嵌套资源拥有所有权。我对此提出质疑,因为在我进行研究(Google 并检查 Whosebug)时,我没有看到很多关于为 FactoryGirl 创建的资源生成 ID 的信息。由于我的用户的 ID 为 nil,因此我假设 FactoryGirl 默认是在不添加 ID 的情况下构建资源。
我确实看到了有关创建关联的信息,但即使是那些似乎也没有 ID。在我创建的应用程序中,根据用户 ID 检查对用户资源的所有访问权限。
我应该为 FactoryGirl 生成的用户创建 ID 吗?
如果不是,为什么不呢?我应该怎么做?
如果是这样,我如何生成不同的用户 ID 以相互检查?
提前感谢您的意见。
如果您要保留用户对象,ID 应该自动 assigned/incremented。您可能使用 build
来实例化对象,而不是 create
.
user = build(:user)
<-- 对象已创建,未保存,无 ID
user = create(:user)
<--- 对象已创建并保存,具有 ID
为了获得最佳实践,请确保您的测试 运行 在单独的数据库上进行,以免污染您的实时数据。您还可以查看 https://github.com/DatabaseCleaner/database_cleaner,了解在测试 运行.
之后清理测试数据的简单方法
我是 FactoryGirl、Faker 和更广泛测试的新手。
我认为我需要向我的用户添加一个由 FactoryGirl 创建的 ID,以评估用户是否可以访问某些页面 and/or 对某些嵌套资源拥有所有权。我对此提出质疑,因为在我进行研究(Google 并检查 Whosebug)时,我没有看到很多关于为 FactoryGirl 创建的资源生成 ID 的信息。由于我的用户的 ID 为 nil,因此我假设 FactoryGirl 默认是在不添加 ID 的情况下构建资源。
我确实看到了有关创建关联的信息,但即使是那些似乎也没有 ID。在我创建的应用程序中,根据用户 ID 检查对用户资源的所有访问权限。
我应该为 FactoryGirl 生成的用户创建 ID 吗? 如果不是,为什么不呢?我应该怎么做? 如果是这样,我如何生成不同的用户 ID 以相互检查?
提前感谢您的意见。
如果您要保留用户对象,ID 应该自动 assigned/incremented。您可能使用 build
来实例化对象,而不是 create
.
user = build(:user)
<-- 对象已创建,未保存,无 ID
user = create(:user)
<--- 对象已创建并保存,具有 ID
为了获得最佳实践,请确保您的测试 运行 在单独的数据库上进行,以免污染您的实时数据。您还可以查看 https://github.com/DatabaseCleaner/database_cleaner,了解在测试 运行.
之后清理测试数据的简单方法