2017-04-01 1 views
0

In meiner TestSpec Klasse Ich habe Reihe von Eigenschaften und seinem Ausgang gedrängt werden, so etwas wie:bequeme Möglichkeit, Klassenmitglieder zu externen Klasse oder Merkmal zu entfernen?

implicit val formats: Formats = DefaultFormats 

    val client: WSClient = app.injector.instanceOf[WSClient] 
    val env: Environment = app.injector.instanceOf[Environment] 
    val config: Configuration = app.configuration 
    val j4s: Json4s = app.injector.instanceOf[Json4s] 
    val actSys: ActorSystem = app.injector.instanceOf[ActorSystem] 
    implicit lazy val materializer: Materializer = app.materializer 

    // mocking service 
    val myService: ChironApiService = mock[MyService] 

    val rawTextModel: String = 
    """{"message":"a message","reason":"Done","list":[34,2,12]}""" 
    val badResponseModel: ModelOne = JsonMethods.parse(rawTextModel).extract[BadResModel] 

    val futureOfEither: Future[Either[String, Int]] = Future(Left("fr")) 
. 
. 
. 

so dachte ich, es heraus zu einem Merkmale und fügen Sie diese Eigenschaft zu TestSpec nehmen und dann kann ich die Informationen zugreifen Gibt es eine elegantere Art, so etwas zu tun?

dank

Antwort

0

Sie können versuchen, so etwas wie

trait TestConfig { 
    val client: WSClient = app.injector.instanceOf[WSClient] 
    val env: Environment = app.injector.instanceOf[Environment] 
    val config: Configuration = app.configuration 
    val j4s: Json4s = app.injector.instanceOf[Json4s] 
    val actSys: ActorSystem = app.injector.instanceOf[ActorSystem] 
    implicit lazy val materializer: Materializer = app.materializer 
} 

class TestSpec extends TestConfig { 
    // mocking service 
    val myService: ChironApiService = mock[MyService] 

    val rawTextModel: String = 
     """{"message":"a message","reason":"Done","list":[34,2,12]}""" 
    val badResponseModel: ModelOne = JsonMethods.parse(rawTextModel).extract[BadResModel] 

    val futureOfEither: Future[Either[String, Int]] = Future(Left("fr")) 
    . 
    . 
    . 
} 
Verwandte Themen