【发布时间】:2018-08-22 07:25:42
【问题描述】:
在以下 ScalaTest 示例中,obtainLock 是一个 Java 函数,它接受一个 String 和两个用于成功/失败调用的函数接口。这以异步方式发生,这意味着 lambda 是从不同的线程调用的。
使用现有代码,此测试返回 true,因为它在调用任一 lambda 之前退出测试块。我查看了Async Testing Documentation for ScalaTest,但我不确定如何编写测试,因为我调用的Java 函数不返回Future。
有没有办法在 ScalaTest 中测试这个异步代码?我正在使用 Scala 2.12、ScalaTest 0.9.6 和 Java 9。
"Acquiring locks" - {
"Return a lock for a key with valid lease limit" in {
locker.obtainLock(lockKeyA, suc => {
suc.key shouldEqual "AAA"
suc.validUntilInMs should be > System.currentTimeMillis()
}, (fmsg, lockInfo) => {
fmsg shouldBe ""
})
}
【问题讨论】:
标签: java scala unit-testing asynchronous scalatest