代码之家  ›  专栏  ›  技术社区  ›  agusgambina

播放框架将GuiceOneAppPerSuite更改为GuiceOneAppPerTest

  •  0
  • agusgambina  · 技术社区  · 6 年前

    我想将应用程序特性实例测试从 GuiceOneAppPerSuite GuiceOneAppPerTest . 因为 GuiceOneAppPerSuite指南

    这是原始文件

    trait MyAppOneApp extends PlaySpec with Results with GuiceOneAppPerSuite with MockitoSugar {
    
      implicit val ec: ExecutionContext = app.injector.instanceOf[ExecutionContext]
    
      implicit val sys = ActorSystem("MyTest")
      implicit val mat = ActorMaterializer()
    
      val dataSource = PRODUCTION
    
      implicit override lazy val app = new GuiceApplicationBuilder()
        .in(Mode.Test)
        .overrides(myAppModule)
        .build()
    
      // Repositories
      val itemRepository = app.injector.instanceOf[ItemRepositoryImpl]
    
      // Services
      val itemService = app.injector.instanceOf[ItemServiceImpl]
    
      //Controllers
      val itemController = app.injector.instanceOf[ItemController]
    
    }
    

    当我想换衣服的时候

    trait MyAppOneApp extends PlaySpec with Results with GuiceOneAppPerTest with MockitoSugar {
    
      implicit val ec: ExecutionContext = app.injector.instanceOf[ExecutionContext]
    
      implicit val sys = ActorSystem("MyTest")
      implicit val mat = ActorMaterializer()
    
      val dataSource = PRODUCTION
    
      override def newAppForTest(td: TestData) = new GuiceApplicationBuilder()
        .in(Mode.Test)
        .overrides(myAppModule)
        .build()
    
      // Repositories
      val itemRepository = app.injector.instanceOf[ItemRepositoryImpl]
    
      // Services
      val itemService = app.injector.instanceOf[ItemServiceImpl]
    
      //Controllers
      val itemController = app.injector.instanceOf[ItemController]
    
    }
    

    我得到一个NullPointerException

    java.lang.NullPointerException:
    [info]   at functional.common.MyAppOneApp.$init$(MyAppOneApp.scala:25)
    [info]   at functional.models.repositories.implementations.ItemRepositoryImplSpec.<init>(ItemRepositoryImplSpec.scala:9)
    [info]   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    [info]   at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    [info]   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    [info]   at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    [info]   at java.lang.Class.newInstance(Class.java:442)
    [info]   at org.scalatest.tools.Framework$ScalaTestTask.execute(Framework.scala:435)
    [info]   at sbt.ForkMain$Run.lambda$runTest$1(ForkMain.java:304)
    [info]   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    
    0 回复  |  直到 6 年前