我目前正在使用RSpec和Factory_Bot_Rails gems测试应用程序,但是我遇到了以下问题。
使用factory_bot_rails版本5.0.2 gem时,我的所有工厂现在都为我所有注册的工厂提供了Undefined Method错误。如果我将gem的版本降级为4.11,则可以正常工作。
例如对于我的用户工厂,该工厂具有名称作为已定义的属性之一,它将显示错误
“用户”工厂中未定义的方法“名称”
我已经竭尽全力解决此问题,但这并不可行。
任何形式的帮助将不胜感激。
答案 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
仅此而已
我希望这会有所帮助