我想知道我应该在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")
}
}发布于 2018-01-22 13:44:13
只需导入scala.concurrent.ExecutionContext.Implicits.global,这将为测试中的Future对象加载默认的ExecutionContext,以便正常工作。
注意:对于在测试中使用Futures是可以的,全局隐含。对于真实的项目,考虑在每个案例中使用ExecutionContext。
https://stackoverflow.com/questions/40640055
复制相似问题