ruby - FactoryBot 动态属性
问题描述
在 5.0 FactoryBot 版本中,静态属性将被弃用,而必须使用动态属性。所以:
factory :product do
name 'Some Product'
end
将需要成为:
factory :product do
name { 'Some Product' }
end
但是,在我的代码中,我简化了具有相同名称但使用循环增加计数的属性的分配:
factory :product do
(1..6).each do |n|
send "image_#{n}", "test_image.jpeg"
end
end
本质上,在我的产品模型中,我有 6 张图片(image_1、image_2 等)。在上面的代码中,我循环遍历每个并将“test_image.jpeg”分配给每个。如何使用动态属性来做到这一点?
解决方案
几乎相同的方式。只需在调用 send 后指定一个块:
factory :product do
(1..6).each do |n|
send("image_#{n}") { "test_image.jpeg" }
end
end
推荐阅读
- ionic-framework - 离子本机日历插件 - 如何“交互式”打开和编辑和事件?
- c# - 从 c# 使用参数运行 haskell 并接收输出
- wordpress - 当使用外部 url 通过 BrowserSync 访问 WordPress 时,它会重定向到 localhost
- typescript - 如何在 Typescript 中强制执行构造函数的编译时检查
- laravel - 如果设备令牌不再有效,我想处理从 fcm 生成的异常
- javascript - Bulma Steps Extension 不会“踩”
- android - 带有 Kotlin 空响应的 Retrofit2
- azure - Graph Api 的应用程序注册门户
- ios - 从标签栏控制器打开带有后退按钮的单独 ViewController
- detox - Detox IOS - 由于连续动画错误导致测试失败,disableSynchronization 不起作用