verifyNoUnwantedInteractions
только проверяет expect
ed заглушки.Заглушки, которые вы создаете с помощью when
, не учитываются.
Теперь я думаю, что все сводится к разнице между when
и expect
.Если вы делаете
when(maker).destroy()
, вы можете звонить так часто, как хотите, включая ноль раз.Но вы, безусловно, не должны verify
сколько раз вы вызывали его после запуска тестируемого устройства.Это будет похоже на любое другое утверждение в тестовой функции, а именно, когда вы проверяете .
Сравните это с expect
, где вы устанавливаете время ожидания вызова заранее.
expect(maker, times=1).destroy()
Теперь тестируемый код может вызывать этот метод ровно один раз, в противном случае он будет выдавать тестируемый код.
Для того, что мы обсуждали здесь в примерах, verifyNoUnwantedInteractions
будет проверять только, был ли maker.destroy()
вызван вообще .