2016-12-08 2 views
0

Je veux tester si pendant une méthode de test une instance d'un objet est créée à partir de l'injecteur. Quelle est la meilleure solution pour atteindre cet objectif.Test de Guice si la classe a été créée

@Test 
public void testThingNotInstantiated() { 
    AnotherThing another = new AnotherThing(); 
    // assert not instance of Thing created 
} 

Répondre

2

Si vous voulez simplement vérifier que votre Guice injecte AnotherThing vous pouvez écrire:

Injector injector 

@Before { 
    injector = Guice.createInjector(new AnotherThingModule()); 
} 

@Test 
public void testAnotherThingInstantiated() { 
    //act 
    AnotherThing another = injector.getInstance(AnotherThing.class); 

    //assert 
    assertNotNull(another); 
} 

Si AnotherThing est un @Singleton et que vous voulez vérifier que Guice n'instancier pas vous pouvez écrire deux fois :

@Test 
public void testSingletonAnotherThingNotInstantiatedTwiceByInjector() { 
    //act 
    AnotherThing first = injector.getInstance(AnotherThing.class); 
    AnotherThing second = injector.getInstance(AnotherThing.class); 

    //assert 
    assertSame(first, second); 
}