【问题标题】:Scalamock expect eventuallyScalamock最终期望
【发布时间】:2021-04-15 15:13:24
【问题描述】:

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

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

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

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

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

我尝试使用sutbverify 来代替,我将它包装在scalatest 中的eventually 中,但无济于事。无论出于何种原因,verify 似乎在第一次评估时就打破了测试。

【问题讨论】:

    标签: asynchronous scalamock


    【解决方案1】:

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

    【讨论】:

    • 哦,现在,我在搜索规范时感到有点尴尬,我没有注意到它,也许我没想到在integration下找到它。无论如何,它就像一个魅力,谢谢!
    • 我有一个测试不适用于 AsyncMockFactory。我必须使用eventually,我很惊讶存根验证在没有时间退避的情况下失败了。
    猜你喜欢
    • 1970-01-01
    • 2015-07-02
    • 2017-11-27
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 2015-07-05
    • 2013-05-23
    • 2021-05-03
    相关资源
    最近更新 更多