我正在尝试使用期货为某些东西编写规范,但我不确定我应该如何使用该Futures
特征。我必须通过whenReady
a FutureConcept
,但我找不到如何从 a 构造一个Future
。文档内容如下:
为了使 whenReady 更广泛地适用,它接受的未来类型是 FutureConcept[T],其中 T 是未来承诺的价值类型。将未来传递给 whenReady 需要从您希望传递的未来类型(建模类型)到 FutureConcept[T] 的隐式转换。
据我了解,我必须编写 aFuture
和 a之间的隐式转换FutureConcept
(这对我来说似乎是错误的,因为它似乎应该是样板文件,但这是我唯一能做到的)。我不知道该怎么做,FutureConcept 的文档很容易告诉我
有关此 trait 为使用期货进行测试而提供的语法的详细信息,请参阅 trait Futures 的文档。
让我绕了一圈。我做的最简单的例子是
import scala.concurrent._
import scala.concurrent.ExecutionContext.Implicits.global
import org.scalatest.WordSpecLike
import org.scalatest.concurrent._
class FutureSpec extends WordSpecLike with Futures {
"A future" must {
"be a valid argument for whenReady" in {
val fut = future { 42 }
whenReady(fut) { res => s should be 42 }
}
}
}
那不编译
- 类型不匹配; 发现:scala.concurrent.Future[Int] 需要:FutureSpec.this.FutureConcept[?]
- ';' 预期但找到整数文字。
我应该做些什么不同的事情?