Unit testing 将期货交给违约方

Unit testing 将期货交给违约方,unit-testing,scala,future,scalatest,Unit Testing,Scala,Future,Scalatest,我正在尝试使用futures为某些东西编写规范,但我不确定应该如何使用futures特性。我必须通过当阅读未来概念时,但我找不到如何从未来构建一个。文件内容如下: 为了使whenReady更广泛地适用,未来it的类型 accepts是一个未来概念[T],其中T是承诺的价值类型 在未来。将未来传递给whenReady需要隐式 从您希望传递的未来类型(建模类型)的转换 未来概念[T] 从这一点上,我了解到我必须在未来和未来概念之间编写一个隐式转换(这对我来说似乎是错误的,因为这似乎应该是样板,但这是

我正在尝试使用futures为某些东西编写规范,但我不确定应该如何使用
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