asynchronous - Scalamock最终期望
问题描述
我scalamock
用来写一个测试。问题是动作是异步的。我有以下伪代码
val resultCollectorMock = mock[ResultCollector]
(resultCollectorMock.collectResult _).expect(someResult)
val serviceUnderTest = new ServiceUnderTest(resultColletorMock)
serviceUnderTest.runAsyncJob(someParams)
这失败了,因为结果是异步计算的,在测试结束时,它还没有准备好,所以还没有collectResult
被调用。
我想要的expectEventually(value)(patienceConfig)
是能够等待一段时间才能调用该方法。
我尝试使用 a sutb
,verify
而是将其包裹在eventually
fromscalatest
但无济于事。无论出于何种原因verify
,似乎在第一次评估时就打破了测试。
解决方案
您应该使用AsyncMockFactory
适当的测试套件和期货,如https://scalamock.org/user-guide/integration/文档中所述
推荐阅读
- c++ - RegEnumKeyExW 不返回所有名称子键
- spring - MockBean 存根无效
- java - 从 kafka 主题激发流数据并写入外部路径中的文本文件
- python - OperationalError : FATAL: no pg_hba.conf entry for host "127.0.0.1", user "fibzadmin", database "fibz", SSL off
- php - 如何在不提交的情况下获取表单中的值?
- python - 将对象转换为时间 Pandas 并在时间之间进行过滤
- android - Android:在添加到 RecyclerView 适配器之前查询模型
- android - 将 targetSdkVersion 设置为 28 后,PreferenceFragmentCompat 样式被破坏。
- threadpool - 从 apache common pool2 中的池中删除对象
- c# - 从 C# 运行批处理文件需要太多时间