gpt4 book ai didi

scala - 在 scalajs 的 scalatest 之前异步

转载 作者:行者123 更新时间:2023-12-04 02:01:52 32 4
gpt4 key购买 nike

在下面的代码示例中,当使用 scalatest 测试 Scala 时,如何等待 ajaxCall() 完成才能开始 test 1 .js 代码?我不能在 Scala.js 中使用 await

class ClientGetEntityDynTest
extends AsyncFunSuite
with Matchers
with BeforeAndAfter {

implicit override def executionContext =
scala.scalajs.concurrent.JSExecutionContext.Implicits.queue

before {
ajaxCall(...) // returns Future[...]
... // I would like to wait for ajaxCall to finish before starting test 1
}

test("test 1") {
...
getEntityDyn(...) // returns Future[Assertion]
}
}

This一年前的问题似乎相关但并未真正解决。

一个简单的可能性是制作我自己的 testWithBefore 方法...调用 test 并等待 Future 在调用之前完成测试,但也许可以在没有此解决方法的情况下执行此操作。

最佳答案

我怀疑您需要重组测试,而不是使用 BeforeAndAfter。我不确定最好的解决方案,但后备方案是创建您自己的高阶函数,调用类似 beforeAsync(fun: => Future[Any]) 的方法,然后手动在您的测试中使用它。

怀疑 BeforeAndAfter.scala 不会太难,并创建一个变体 BeforeAndAfterAsyc,其中包含此 beforeAsync() 函数,但我还没有尝试这样做。

关于scala - 在 scalajs 的 scalatest 之前异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46584633/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com