Mar*_*ijn 10 unit-testing scala future scalatest
我正在尝试用期货编写一个规范,我不确定我应该如何使用这个Futures特性.我必须传递whenReady一个FutureConcept,但我找不到我应该如何构建一个Future.文件内容如下:
为了使whenReady更广泛适用,它接受的未来类型是FutureConcept [T],其中T是未来承诺的价值类型.将future传递给whenReady需要从您希望传递的未来类型(建模类型)到FutureConcept [T]的隐式转换.
据我所知,我必须在a Future和a 之间写一个隐式转换FutureConcept(这对我来说似乎不对,因为它似乎应该是样板文件,但它是我唯一可以做到的).我无法弄清楚如何做到这一点,FutureConcept的文档很方便地告诉我
有关此特征为期货测试提供的语法的详细信息,请参阅特征期货的文档.
让我走完整圈.我做的最简单的例子是
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 }
}
}
}
Run Code Online (Sandbox Code Playgroud)
那不编译
- 类型不匹配; 发现:scala.concurrent.Future [Int] required:FutureSpec.this.FutureConcept [?]
- ';' 预期,但发现整数字面量.
我应该做些什么呢?
Mar*_*ijn 24
我发现隐含的转换存在于ScalaFutures,而不是在Futures.类声明应该是
class FutureSpec extends WordSpecLike with ScalaFutures
Run Code Online (Sandbox Code Playgroud)
除此之外,还有其他一些错误.FutureSpec也应该Matchers混入,并且res => s是一个愚蠢的错字,应该是res => res
| 归档时间: |
|
| 查看次数: |
5331 次 |
| 最近记录: |