2017-04-01 125 views
0

在我TestSpec类我有一大堆的属性和它的起始的拥挤,是这样的:方便的方法将班级成员带到外部班级或特质?

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

,所以我想取出来的特质而这种特质增加TestSpec,然后我可以访问信息,有没有更优雅的Scala方式来做这样的事情?

感谢

回答

0

你可以尝试像

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