2016-12-14 53 views
0

我是FactoryGirl,Faker和更广泛的测试新手。如何为FactoryGirl构建创建user_id?

我相信我需要向FactoryGirl创建的用户添加一个ID,以评估用户是否可以访问某些页面和/或对某些嵌套资源拥有所有权。我质疑这一点,因为我研究(谷歌和检查StackOverflow)我没有看到关于为FactoryGirl创建的资源生成ID的很多信息。由于我的用户自带ID为零,我假设FactoryGirl默认是在不添加ID的情况下构建资源。

我确实看到了关于创建关联的信息,但即使那些似乎没有ID也可以。在应用程序中,我将创建对用户资源的所有访问权限,并根据用户的ID进行检查。

我应该为我的FactoryGirl生成的用户创建和ID吗? 如果不是,为什么不呢?我该怎么做呢? 如果是这样,我该如何生成不同的用户ID来检查对方?

在此先感谢您的意见。

回答

2

如果您要保留用户对象,则应自动分配/增加ID。有可能您使用build来实例化对象而不是create

user = build(:user) < - 对象被创建,不保存,没有ID

user = create(:user) < ---对象被创建并保存,具有ID

对于最佳实践,确保您的测试是在一个单独运行数据库,这样你就不会污染你的实时数据。您也可以检查出https://github.com/DatabaseCleaner/database_cleaner,以便在测试运行后清除测试数据。

+0

谢谢,这让我非常感觉,我不知道现在我是如何错过它的。 – Lenocam

相关问题