【问题标题】:Rails: Undefined method 'name' in 'user' factory OR Undefined Method for all factoriesRails:“用户”工厂中未定义的方法“名称”或所有工厂的未定义方法
【发布时间】:2019-07-20 17:07:04
【问题描述】:

我目前正在使用 RSpec 和 Factory_Bot_Rails gem 来测试应用程序,但我遇到了以下问题。

当使用 factory_bot_rails 版本 5.0.2 gem 时,我的工厂现在都给我所有注册工厂的未定义方法错误。如果我将 gem 的版本降级到 4.11,它可以工作。

例如,对于我的用户工厂,它具有 name 作为定义的属性之一,它会显示错误

“用户”工厂中未定义的方法“名称”

我已经非常努力地解决了这个问题,但它并不可行。

我们将不胜感激任何形式的帮助。

【问题讨论】:

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


    【解决方案1】:

    这是我解决问题的方法

    从 Thoughtbot 的博客中,我意识到静态定义的属性已被弃用,然后从 factory_bot >= 5.0 中删除。因此,不要为您的工厂使用静态定义的属性,而是使用动态定义的属性。也就是说,在工厂中定义的每个属性周围插入大括号{}

    这是一个例子

    使用动态定义的属性

    factory :robot do
      name { "Ralph" }
      email { "ralph@example.com" }
    end
    

    而不是静态定义的属性

    factory :robot do
      name "Ralph"
      email  "ralph@example.com"
    end
    

    你可以在这里阅读更多关于它的信息

    Deprecating static attributes in factory_bot 4.11

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-26
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多