我目前正在使用 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 中弃用静态属性