导轨:工厂'user'未定义方法'name'或所有工厂的未定义方法



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

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

例如,对于我的用户工厂,它将名称作为定义的属性之一,它显示错误

">

用户"工厂中未定义的方法"名称">

我已经努力解决这个问题,但这是不可行的。

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

这是我解决问题的方法

从 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

您可以在此处阅读有关它的更多信息

在 factory_bot 4.11 中弃用静态属性

最新更新