【问题标题】:convenient way to take out class members to external class or trait?将班级成员带到外部班级或特质的便捷方式?
【发布时间】:2017-08-26 09:27:54
【问题描述】:

在我的 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 方法来做这样的事情?

谢谢

【问题讨论】:

    标签: java scala scalatest


    【解决方案1】:

    你可以试试

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

    【讨论】:

      猜你喜欢
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-11
      • 2012-01-15
      • 2014-11-19
      相关资源
      最近更新 更多