【发布时间】:2026-02-09 13:40:01
【问题描述】:
我有一项使用 Scala Async 库的服务。我主要使用这个库来计时我的数据库调用。我要测试的方法包含使用异步等待机制对数据库的多次调用。我所拥有的伪代码如下:
def myDbMethod() = async {
val firstCall = await(call the db and get the result)
val secondCall = await(all the db and get the result)
val thirdCall = await(all the db and get the result)
...
}
在我的 Scala 测试单元测试中,我有
Await.result(myDbMethod(), 10.seconds)
我只是试图通过运行我的单元测试来调试 myMethod,即使在进入 secondCall 之前,它也会返回测试成功。我的意思是我在对数据库的所有 3 次调用中都有断点,但是 IntelliJ 调试器会在它完成对数据库的第一次调用后立即退出。为什么是这样?如何使用 IntelliJ 调试器测试此行为?
【问题讨论】:
-
这些方法是否相互依赖?还是没有关系?
-
它们是相互依赖的,必须按顺序排列,这就是我必须使用这个库的原因
标签: scala asynchronous async-await