最好是以某种方式获得
@object
是的。如果是使用create()调用创建的,则可以覆盖工厂中的属性。
如果不能直接设置值,则可以创建验证“映射”值是否与源值匹配的期望值。
object { FactoryBot.create(:object) }
subject { FactoryBot.create(:mapper, object: object) }
result = subject.convert_for_elastic_search
expect(result[:name_attr1]).to eq object.attr1
expect(result[:name_attr2]).to eq object.attr2
expect(result[:name_attr3]).to eq object.attr3
当然,如果您要设置如上所示的规范,那么设置硬编码值就很简单了。即
FactoryBot.create(:object, attr1: 'val1')
是的。在这种情况下,你可以期待“val1”。
如果
object
不可访问,如上图所示,那么您需要一种方法来获取对它的引用,也许mapper(subject)以某种方式公开了这一点。
如果你真的搞不懂
@对象
然后,也许仅仅测试值是否存在就足以验证映射过程。