Scalamock 期待最终

问题描述

我正在使用 scalamock 编写测试。问题是动作是异步的。 我有以下伪代码

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

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

这会失败,因为结果是异步计算的,在测试结束时,它还没有准备好,所以 collectResult 没有被调用还没有

我想要的是 expectEventually(value)(patiancConfig) 能够等待一段时间来调用方法

我尝试使用 sutbverify 代替,我将它包装在 eventuallyscalatest 中,但无济于事。无论出于何种原因,verify 似乎在第一次评估时都无法通过测试。

解决方法

您应该将 AsyncMockFactory 与适当的测试套件和 Futures 结合使用,如 https://scalamock.org/user-guide/integration/

处的文档中所述