1

J'essaie de tester certaines actions. Ils ont besoin de mes trucs de sécurité que j'ai créés avec Silhouette.Cadre de lecture GuiceApplicationBuilder ne charge pas les configurations de module activées

je un module pour configurer le DI pour Silhouette à security.Module, et dans mon dossier conf/application.conf je la ligne:

play.modules.enabled += "security.Module" 

Quand je lance mes tests, j'obtiens une erreur en disant:

No implementation for com.mohiva.play.silhouette.api.Silhouette<security.JwtEnv> was bound. 

Si je définis un point d'arrêt dans ma classe security.Module, il n'est jamais déclenché. Cependant, si je mets un point d'arrêt dans ma classe principale Module c'est. Donc, je peux voir que mon security.Module n'est jamais chargé malgré les docs pour GuiceApplicationBuilder disant que les modules activés sont chargés automatiquement.

Voilà comment je configuration GuiceApplicationBuilder dans ma classe de test (basé sur scalatest):

class TestUserController extends PlaySpec with OneAppPerTest with Results { 

    val identity = UserDao(
    id = Some(10), 
    email = Some("[email protected]"), 
    createdAt = DateTime.parse("2016-11-11T11:11:11") 
) 

    val loginInfo = LoginInfo("credentials", identity.email.get) 

    implicit val env = FakeEnvironment[JwtEnv](Seq(loginInfo -> identity)) 

    implicit override def newAppForTest(td: TestData) = new GuiceApplicationBuilder() 
    .overrides(bind[UsersBlockedRepo].to[MockUsersBlockedRepo]) 
    .build 
//... 
} 

Qu'est-ce que je manque pour obtenir GuiceApplicationBuilder pour charger mon module de sécurité?

Répondre

0

J'ai corrigé ceci. Le problème était que mon security.Module a pris args constructeur:

class Module(environment: PlayEnvironment, 
     configuration: Configuration) extends AbstractModule with ScalaModule {...} 

Suppression de ceux fixés il.

+0

Je rencontre le même problème malgré le fait que le constructeur ait des arguments pour le module. J'utilise 'GuiceOneAppPerSuite'. L'application fonctionne normalement mais lors du test, elle ne charge pas ma classe de module bien qu'elle soit activée dans application.conf. 'mvn test' fonctionne mais exécute un seul test depuis eclipse échoue – nir

+0

Je viens de le corriger en corrigeant le dossier de sortie pour app, conf et le répertoire de test sous le chemin de compilation. D'une manière ou d'une autre, je les ai fait séparer le répertoire et le répertoire cible habituel de maven. – nir