2015-06-05 10 views
6

Il play documentation about functional tests in java mostra due modiCome utilizzare in-memory database con la prova iniettato con il gioco java

  • utilizzando fakeApplication per specificare una configurazione personalizzata (in-memory database nell'esempio)
  • utilizzando iniezione di dipendenza per configurare il applicazione

Vorrei utilizzare dependency injection ma devo impostare la configurazione personalizzata all'avvio dell'applicazione come l'utilizzo nel database di memoria.

Non riesco a raggiungerlo. Immagino che questo debba essere fatto nel costruttore di guicche ma non so come.

+0

Hai un'occhiata a questo? https://playframework.com/documentation/2.4.x/JavaTestingWithDatabases –

+0

questo capitolo è se si desidera testare con un database ma senza un'applicazione. Voglio avviare un'applicazione con il database in memoria –

+0

Dai uno sguardo a https://github.com/schaloner/deadbolt-2-java/blob/master/test-app/test/be/objectify/deadbolt/java /test/controllers/subject/SubjectPresentMethodConstraintsTest.java#L44 - potrebbe aiutarti a iniziare. –

risposta

5

Suppongo che tu stia utilizzando Guice per DI.

La discussione sul numero 4809 sul repository github del framework dovrebbe aiutare a rispondere alla domanda.

sono stato in grado di farlo funzionare utilizzando una delle soluzioni sulla questione:

 new GuiceApplicationBuilder() 
      .configure((Map) Helpers.inMemoryDatabase()) 
      .in(Mode.TEST)   
      .build();