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