Rails:“用户”工厂中的未定义方法“名称”或所有工厂的未定义方法

时间:2019-07-20 17:07:04

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

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

使用factory_bot_rails版本5.0.2 gem时,我的所有工厂现在都为我所有注册的工厂提供了Undefined Method错误。如果我将gem的版本降级为4.11,则可以正常工作。

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

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

我已经竭尽全力解决此问题,但这并不可行。

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

1 个答案:

答案 0 :(得分:0)

这是我解决问题的方式

从Whilebot的博客中,我开始认识到已弃用了静态定义的属性,然后将其从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

仅此而已

我希望这会有所帮助

相关问题