2010-07-13 3 views
2

Je veux tester certains services sous-jacents en utilisant PowerMock, mais c'est compliqué.tester la classe qui retourne le service en utilisant powermock?

Je voudrais obtenir votre suggestion

public interface Service{ 
    public void someMethod(){ 
    } 
} 
public ServiceClient implements Service { 
... 
} 
public MyServiceClient { 
public Service getService(){ 
    return service; 
} 
} 

J'ai écrit un ServiceUtil qui utilise MyServiceClient pour appeler et obtient les services.

public class ServiceUtil { 
private static service s = MyServiceClient.getService(); 
public void updateService(){ 
    // do some thing with service 
} 
} 

Maintenant, je veux tester la méthode ServiceUtil - updateService. Comment fait-on ça?

Répondre

0

Ce que vous voulez probablement est d'injecter une version fictive du service. Cela peut se faire comme ceci:

service mockService = Mockito.mock(service.class); 
Whitebox.setInternalState(serviceutil.class, mockService); 

Vous pouvez en savoir plus sur l'encapsulation sans passer ici: http://code.google.com/p/powermock/wiki/BypassEncapsulation

Questions connexes