2017-07-12 3 views
0

私はCheckout目的のプロジェクトでMasterpass SDKを実装しました。 APIは、CallBackUrlとOrginURLを渡して要求トークンを取得するために使用されます。 APIが正常に実装され、正常に動作しています。MasterPass Merchant Server SDK - リクエストトークンJunit

問題:Mockitoを使用してjunitテストケースを作成する際に問題に直面しています。

コード:

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); 
    } 

例外:

rg.mockito.exceptions.misusing.MissingMethodInvocationException:

場合は()「モック上のメソッド呼び出しでなければならない引数が必要'例えば、 (mock.getArticles())when then return(articles);

1.最終的な/プライベート/ equals()/ hashCode()メソッドのいずれかをスタブします。 これらのメソッドにはをスタブして検証することはできません。 非公開の親クラスで宣言されたモーキングメソッドはサポートされていません。 2. inside()ではモックでメソッドを呼び出さず、ほかのオブジェクトでメソッドを呼び出します。

junitを使用してmockingするためにこれらのapisで作業する場合は、助けが必要です。 モッキングに使用できる他のフレームワークはありますか?

答えて

0

PowerMockitoを使用してMasterPass SDK実装をモックできます。これは静的メソッドを含んでいるので、PowerMockitoで嘲笑することができます。

コードスニペットは

@Mock プライベートProcessorFactory processorXXXX ..以下の通りです。

public void setupAndXXXProcessor(AuthTokenRequestXXXX requestBean)は例外をスローします。{ retrieveAuthTokenProcessor = new RetrieveAuthXXXXXX(requestBean); PowerMockito.when( processorXXXX.createProcessor(eq(RetrieveAuthXXXXXX.class)、any(AuthTokenRequestXXXX.class))) .then戻り値(retrieveAuthTokenProcessor); PowerMockito.mockStatic(RequestTokenApi.class); PowerMockito.when(RequestTokenApi.create(anyString()))。then返される( "createRequestTokenResponse"); PowerMockito.mockStatic(ShoppingCartApi.class); PowerMockito.when(ShoppingCartApi.create(any(ShoppingCartRequest.class))) .then返信(createShoppingCartResponse()); PowerMockito.mockStatic(MerchantInitializationApi.class); (MerchantInitializationRequest.class)) 。

}

関連する問題