Допустим, у меня есть класс обслуживания как таковой:
class FooService
def self.execute(foo_id)
Foo.find(foo_id).tap do |foo|
foo.update_attribute :status, :working
do_work(foo)
foo.update_attribute :status, :done
end
end
end
Простой тест для этого метода в Minitest с Mocha:
test 'executing the service' do
@foo = Foo.first
FooService.expects(:do_work).with(@foo)
FooService.execute(@foo.id)
assert_equal :done, @foo.reload.status
end
Какой будет лучший способ проверитьчто атрибут status
был установлен на :working
?
Я пытался использовать Foo.any_instance.expects(:update_attribute).with(:status, :working)
, но, поскольку в Mocha нет способа вызвать исходную реализацию, это имеет плохие побочные эффекты.