【问题标题】:How do I create an user_id for a FactoryGirl build?如何为 FactoryGirl 构建创建 user_id?
【发布时间】:2016-12-14 18:37:56
【问题描述】:

我是 FactoryGirl、Faker 和更广泛的测试新手。

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

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

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

提前感谢您的意见。

【问题讨论】:

    标签: ruby-on-rails rspec factory-bot rspec-rails


    【解决方案1】:

    如果您要持久化用户对象,则 ID 应自动分配/递增。您可能正在使用 build 而不是 create 来实例化对象。

    user = build(:user)

    user = create(:user)

    为了获得最佳实践,请确保您的测试在单独的数据库上运行,以免污染实时数据。您还可以查看https://github.com/DatabaseCleaner/database_cleaner,了解在运行测试后清理测试数据的简单方法。

    【讨论】:

    • 谢谢,这很有意义,我不知道我以前是怎么错过的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多