Scalamock ожидать в конце концов

Я использую scalamock для написания теста. Проблема в том, что действие асинхронно. У меня есть следующий псевдокод

val resultCollectorMock = mock[ResultCollector]
(resultCollectorMock.collectResult _).expect(someResult)

val serviceUnderTest = new ServiceUnderTest(resultColletorMock)
serviceUnderTest.runAsyncJob(someParams)

Это не удается, потому что результат вычисляется асинхронно, в то время, когда тест заканчивается, он все еще не готов, поэтому collectResult не вызывался, пока.

Я хочу иметь expectEventually(value)(patiancConfig), который может некоторое время ждать вызова метода.

Я пытался вместо этого использовать sutb и verify, я завернул его в eventually из scalatest, но безрезультатно. По какой-то причине verify, похоже, не прошел тест при первой оценке.


person mjjaniec    schedule 15.04.2021    source источник


Ответы (1)


вы должны использовать AsyncMockFactory с соответствующим набором тестов и фьючерсами, как описано в документации по адресу https://scalamock.org/user-guide/integration/

person Philipp    schedule 15.04.2021
comment
о, теперь я чувствую себя немного смущенным, когда я искал спецификацию, я не заметил этого, возможно, я не ожидал найти его под integration. В любом случае, это работает как шарм, спасибо! - person mjjaniec; 16.04.2021