Я пытаюсь проверить метод на моей модели. Запуск в консоли работает, но мой тест rspec не проходит. Оформить заказ код:
Модель:
def import(master)
hsh = master.attributes.delete_if { |k,v| k == 'id' }
self.update_attributes(hsh)
end
Тест Rspec:
describe "#import" do
let(:master) { Factory(:sheet, :work_order => 'M1234', :sample_size => 10, :sample_scheme => 'TEST#') }
let(:wo) { Factory(:sheet, :work_order => 'W1234', :sample_scheme => 'ORIG#' ) }
it "imports all of the attributes from the master" do
expect { wo.import(master) }.to change( wo, :sample_scheme ).to(master.sample_scheme)
end
end
Я не могу понять это, вот вывод:
'Sheet#import imports all of the attributes from the master' FAILED
sample_scheme should have been changed to "TEST#", but is now "ORIG#"
Как я уже сказал, код правильно импортирует атрибуты из мастера при запуске в консоли. Это просто тест rspec не проходит. Что я делаю не так?
изменение функции импорта приводит к передаче:
def import(master)
hsh = master.attributes.delete_if { |k,v| k == 'id' }
hsh.each do |k,v|
self.update_attribute(k, v)
end
#self.update_attribute(:sample_scheme, hsh['sample_scheme'])
#self.update_attributes(hsh)
end