ruby-on-rails - Rails 5 rspec - 将对象转换为 ActiveRecord 关系
问题描述
我有.ids
用于 ActiveRecord 数组的方法。像这样的东西:
def exmpale(array)
method2(array.ids)
end
现在我想为此方法创建测试,但是当我通过 FactoryBot 创建对象时,我没有得到 ActiveRecord 数组。例如:
let(:array) { FactoryBot.create(:class_example) }
我可以ClassExample.where
用来获得 ActiveRecord Relation,但我不确定这是个好主意。在不改变方法的情况下还有其他灵魂吗?
解决方案
简单的方法是使用create_list
并返回一个ActiveRecord
关系,但如果我是你,我会重新考虑使用stubs
.
let(:array) do
list = create_list(:class_example, 4)
ClassExample.where(id: list.map(&:id))
end
推荐阅读
- c - 如何从嵌入在 cgo 中的 C 代码调用 Go 函数
- kubernetes - 不同主机中的 pod 和服务以及 pod 之间的 calico 网络连接失败
- python-behave - 运行特定的 python 行为测试
- c++ - Lambda 闭包无法转换为 std::function
- javascript - 每次都创建服务 - Angular
- reactjs - 我无法在 React.js 中过滤我的数组
- material-ui - 在 Material-UI 中 $active 是什么意思?
- axapta - Dynamics 365 Finance 无法关闭当前表单 x++
- javascript - 在 MainActivity.java 中找不到 REACT-NATIVE 的方法 getPackages()
- swift - SwiftUI:如何更改 Slider 的范围?