gpt4 book ai didi

scala - 如何在 Scala 中测试 future 列表

转载 作者:行者123 更新时间:2023-12-02 08:21:09 25 4
gpt4 key购买 nike

我想测试一个方法(使用 ScalaTest),它接受值的 List 并在数据库中更新它们,为每个值返回一个 Future 表明成功更新。是否有一种惯用的方法来验证所有值是否都保存在数据库中?我如何知道从该方法返回的所有 Future 何时完成?

trait Result
case object A extends Result
case object B extends Result

def addToDB(i: String): Future[Result]

def persistUsers(users: List[String]): List[Future[Result]] = {
users.map(addToDB)
}

我尝试过类似的方法(有效),但有更好的方法吗?

"should update list " in {
val users = List("a","b","c")

persistUsers(users)

Thread.sleep(1000)

whenReady(db.find("a")) { result => result shouldEqual A }
.
.
.

}

最佳答案

所以你想等待一个 Futures 列表,你有几个选项(我不知道 ScalaTest 是否有一个 whenReady for a Futures list of Futures),其中一个是使用 Future.sequence(futureList) 创建一个 Future[List[A]]

val futures = persistUsers(users)

whenReady(Future.sequence(futures)){result => result shouldEqual users}

关于scala - 如何在 Scala 中测试 future 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37029928/

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