Unit testing 将期货交给违约方
我正在尝试使用futures为某些东西编写规范,但我不确定应该如何使用Unit testing 将期货交给违约方,unit-testing,scala,future,scalatest,Unit Testing,Scala,Future,Scalatest,我正在尝试使用futures为某些东西编写规范,但我不确定应该如何使用futures特性。我必须通过当阅读未来概念时,但我找不到如何从未来构建一个。文件内容如下: 为了使whenReady更广泛地适用,未来it的类型 accepts是一个未来概念[T],其中T是承诺的价值类型 在未来。将未来传递给whenReady需要隐式 从您希望传递的未来类型(建模类型)的转换 未来概念[T] 从这一点上,我了解到我必须在未来和未来概念之间编写一个隐式转换(这对我来说似乎是错误的,因为这似乎应该是样板,但这是
futures
特性。我必须通过当阅读未来概念时,但我找不到如何从未来构建一个。文件内容如下:
为了使whenReady更广泛地适用,未来it的类型
accepts是一个未来概念[T],其中T是承诺的价值类型
在未来。将未来传递给whenReady需要隐式
从您希望传递的未来类型(建模类型)的转换
未来概念[T]
从这一点上,我了解到我必须在未来
和未来概念
之间编写一个隐式转换(这对我来说似乎是错误的,因为这似乎应该是样板,但这是我唯一能做的事情)。不过,我不知道如何做到这一点,FutureConcept的文档很容易告诉我
有关语法的详细信息,请参阅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[?]
- “;”应为整型文字,但找到整型文字
我应该怎么做呢?我发现隐式转换出现在ScalaFutures
中,而不是Futures
中。类声明应该是
class FutureSpec extends WordSpecLike with ScalaFutures
除此之外,还有一些其他错误。FutureSpec还应该混合使用匹配器,而且res=>s
是一个愚蠢的打字错误,应该是res=>res
这个答案是绝对正确的,只是为了增加一点明确性:将“带未来”改为“带规模未来”,这很完美。你的回答对我帮助很大。干杯Had必须使用带有AsyncMockFactory和ScalaFutures的Matchers的扩展AsyncFunSuite