В Rails я хочу протестировать рабочий процесс, в котором модель имеет статус idle
, затем получает status
running
, а после завершения рабочего процесса устанавливается состояние idle
.
Легко проверить, установлен ли статус на idle
с помощью Rspe c, но у меня нет возможности проверить, было ли его состояние установлено на running
во время выполнения рабочего процесса.
Моими первыми мыслями было использовать has_changed?
, но это неправильно, так как статус также будет изменен после выполнения рабочего процесса. Я также рассмотрел receive
, но я не понимаю синтаксис для использования там.
Проверка изменения модели:
expect{ SomeTrigger }.to change { Workflow.status }.from('a').to('b')
Проверка, имеет ли атрибут значение, отличное от предыдущего:
expect{ Workflow.status_changed? }.to be_truthy
Есть ли в Rspe c способ проверить, получила ли модель заданные c атрибуты и значения в течение своего жизненного цикла?