Asynchronous 斯卡拉莫克希望最终

Asynchronous 斯卡拉莫克希望最终,asynchronous,scalamock,Asynchronous,Scalamock,我正在使用scalamock编写一个测试。问题是动作是异步的。 我有以下伪代码 val resultCollectorMock = mock[ResultCollector] (resultCollectorMock.collectResult _).expect(someResult) val serviceUnderTest = new ServiceUnderTest(resultColletorMock) serviceUnderTest.runAsyncJob(someParams)

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

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

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

这会失败,因为结果是异步计算的,在测试结束时,它仍然没有准备好,因此没有调用
collectResult
但是

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


我尝试使用
sutb
verify
来代替,我最终从
scalatest
将其包装在
中,但没有效果。无论出于何种原因,
verify
似乎在第一次评估时就破坏了测试。

您应该使用
AsyncMockFactory
,并使用适当的测试套件和未来,如文档中所述,在

哦,现在,我在搜索规范时感到有点尴尬,我没有注意到它,也许我没想到会在
integration
下找到它。不管怎么说,它很有魅力,谢谢你!