首页 > 解决方案 > Scalamock最终期望

问题描述

scalamock用来写一个测试。问题是动作是异步的。我有以下伪代码

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

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

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

我想要的expectEventually(value)(patienceConfig)是能够等待一段时间才能调用该方法。

我尝试使用 a sutbverify而是将其包裹在eventuallyfromscalatest但无济于事。无论出于何种原因verify,似乎在第一次评估时就打破了测试。

标签: asynchronousscalamock

解决方案


您应该使用AsyncMockFactory适当的测试套件和期货,如https://scalamock.org/user-guide/integration/文档中所述


推荐阅读