Лучше всего было бы как-то получить ссылку на @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
недоступен, как показано выше, тогда вам понадобится способ получить ссылку на него, возможно, картограф (субъект) это как-то обнажит.
Если вы действительно не можете получить значение @object
, то, возможно, достаточно просто проверить значение, и правильного типа данных будет достаточно для проверки процесса сопоставления.