У меня есть этот тест rspec
let(:document) { Document.new }
let(:residue) { Residue.new }
describe "inner_residue=" do
before do
document.producer_residue = residue
end
it 'dont changes the producer residue' do
expect { document.inner_residue = residue }.to_not change(document, :producer_residue)
end
end
Это выводит эту ошибку:
producer_residue should not have changed, but did change from #<Residue id: nil, un_code: nil, description: "res", created_at: ... > to #<Residue id: nil, un_code: nil, description: "res", created_at: ... >
Как видите, там тот же осадок. Метод более сложный, но это упрощение, которое тоже не работает:
def inner_residue=(other)
return self.producer_residue = self.addressee_residue = nil unless other
self.producer_residue = producer_residue
end
Итак... ВТФ?
Замена остатка на себя делает утверждение неверным? Я проверил, совпадают ли они с ==, ===, eq? это всегда правда. Я не могу понять, что с этим не так.
Я использую rspec 1.3 (это приложение для рельсов 2.3, я не могу перейти на rspec2)