【问题标题】:Scalatest ExecutionContextScalatest ExecutionContext
【发布时间】:2017-03-31 02:51:28
【问题描述】:

我想知道我应该在scalatest % 2.2.6 上使用哪个ExecutionContext(以及为什么)来运行我的期货和模拟期货。

class Foo {
   def foo: Future[String] = Future.sucessful("B")
}

class Bar(foo: Foo) {
   def bar: Future[String] = foo.foo()
}

class MyTest extends WordSpec {

  implicit val ec: ExecutionContext = ??? // ...global? Why global? Why not?

  val myMock = mock[Foo]
  val myBar = new Bar(myMock)

  "..." in {
    (myMock.foo _).expects(*).returning(Future.succesful("A"))
    whenReady(myBar.bar())(_ shouldBe "A")
  }
}

【问题讨论】:

    标签: scala future scalatest scalamock


    【解决方案1】:

    只需导入scala.concurrent.ExecutionContext.Implicits.global,这将加载默认的ExecutionContext,以便测试中的Future 对象正常工作。

    注意:对于在测试中使用 Futures 是可以的,全局隐式是可以的。对于实际项目,请考虑在每个案例中使用 ExecutionContext

    【讨论】:

      猜你喜欢
      • 2012-10-11
      • 2016-08-26
      • 2021-08-02
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      • 2021-05-18
      相关资源
      最近更新 更多