2016-11-16 6 views
6

मैं जानना चाहता हूं कि ExecutionContext मुझे अपने वायदा और नकली वायदा चलाने के लिए scalatest % 2.2.6 पर (और क्यों) उपयोग करना चाहिए।स्केलटेस्ट एक्जिक्यूशन कॉन्टेक्स्ट

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") 
    } 
} 

उत्तर

1

बस scala.concurrent.ExecutionContext.Implicits.global आयात और इस को ठीक से काम करने के लिए अपने परीक्षण में भविष्य वस्तुओं के लिए डिफ़ॉल्ट ExecutionContext लोड होगा।

नोट: परीक्षण पर भविष्य का उपयोग करने के लिए वैश्विक प्रभाव ठीक है। वास्तविक परियोजनाओं के लिए प्रति मामले सही निष्पादन कॉन्टेक्स्ट ठीक से ट्यून करने के लिए।

संबंधित मुद्दे