2017-07-12 3 views
0

J'ai implémenté le SDK Masterpass dans l'un de mes projets Project for Checkout. L'API est utilisée pour obtenir le jeton de demande en passant le CallBackUrl et OrginURL L'API est implémentée avec succès et fonctionne comme prévu. Problème: Je suis confronté à un problème avec la création de cas de test junit en utilisant Mockito.MasterPass Merchant Server SDK - Jeton de demande Junit

code:

public void invokeService(AuthTokenRequestBean requestBean) throws Exception { 
     retrieveAuthTokenService = new RetrieveAuthTokenService(requestBean); 
     when(processorFactory.createService(eq(RetrieveAuthTokenService.class), 
               any(AuthTokenRequestBean.class))). 
      thenReturn(retrieveAuthTokenService); 
     Mockito.when(retrieveAuthTokenService.getOutput()).thenReturn(response); 
     Mockito.when(retrieveAuthTokenService.process(any(FlowCtx.class))).thenReturn(response); 
    } 

Exception:

rg.mockito.exceptions.misusing.MissingMethodInvocationException:

quand() nécessite un argument qui doit être « un appel de méthode sur une maquette '. Par exemple: when (mock.getArticles()). ThenReturn (articles);

En outre, cette erreur peut s'afficher car: 1. vous avez terminé l'une des méthodes suivantes: final/private/equals()/hashCode(). Les méthodes ne peuvent pas être être cochées/vérifiées. Les méthodes de contournement déclarées sur des classes parentes non publiques ne sont pas prises en charge. 2. à l'intérieur de when() vous n'appelez pas méthode sur mock mais sur un autre objet.

Besoin d'aide si quelqu'un travaille sur ces apis pour se moquer en utilisant junit. Y a-t-il un autre cadre qui peut être utilisé pour la simulation?

Répondre

0

Nous pouvons simuler l'implémentation MasterPass SDK en utilisant PowerMockito. Puisque ceci contient des méthodes statiques et peut être raillé avec PowerMockito.

Code Snippet est ci-dessous ..

@Mock privé ProcessorFactory processorXXXX; Public void setupAndXXXProcessor (AuthTokenRequestXXXX requestBean) throws Exception { retrieveAuthTokenProcessor = nouveau RetrieveAuthXXXXXX (requestBean); PowerMockito.when ( processeurXXXX.createProcessor (eq (RetrieveAuthXXXXXX.class), any (AuthTokenRequestXXXX.class))) .thenReturn (retrieveAuthTokenProcessor); PowerMockito.mockStatic (RequestTokenApi.class); PowerMockito.when (RequestTokenApi.create (anyString())). ThenReturn ("createRequestTokenResponse"); PowerMockito.mockStatic (ShoppingCartApi.class); PowerMockito.when (ShoppingCartApi.create (any (ShoppingCartRequest.class))) .thenReturn (createShoppingCartResponse()); PowerMockito.mockStatic (MerchantInitializationApi.class); PowerMockito.when (MerchantInitializationApi.create (any (MerchantInitializationRequest.class))) .thenReturn ("createMerchantInitializationResponse");

}