MasterPass Merchant Server SDK - 请求令牌Junit

时间:2017-07-12 11:12:57

标签: java junit sdk mockito mastercard

我已在我的一个Project for Checkout目的中实现了Masterpass SDK。 API用于通过传递CallBackUrl和OrginURL来获取请求令牌 API已成功实施,并且按预期工作。

问题:我在使用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:

when()需要一个必须是'模拟方法调用'的参数。 例如:     当(mock.getArticles())thenReturn(文章);

此外,此错误可能会显示,因为: 1.你存在以下任何一个:final / private / equals()/ hashCode()方法。    这些方法无法进行存根/验证。    不支持在非公共父类上声明的模拟方法。 2.在()内部,你不是在模拟上调用方法,而是在其他对象上调用方法。

如果有人使用junit处理这些api进行模拟,那么需要帮助。 是否有任何其他框架可用于模拟。

1 个答案:

答案 0 :(得分:0)

我们可以使用PowerMockito模拟MasterPass SDK实现。由于这包含静态方法,因此可以使用PowerMockito进行模拟。

代码段位于以下..

@Mock     private ProcessorFactory processorXXXX;

public void setupAndXXXProcessor(AuthTokenRequestXXXX requestBean)抛出异常{         retrieveAuthTokenProcessor = new RetrieveAuthXXXXXX(requestBean);         PowerMockito.when(                 processorXXXX.createProcessor(eq(RetrieveAuthXXXXXX.class),any(AuthTokenRequestXXXX.class)))                 .thenReturn(retrieveAuthTokenProcessor);         PowerMockito.mockStatic(RequestTokenApi.class);         。PowerMockito.when(RequestTokenApi.create(anyString()))thenReturn(" createRequestTokenResponse&#34);         PowerMockito.mockStatic(ShoppingCartApi.class);         PowerMockito.when(ShoppingCartApi.create(任何(ShoppingCartRequest.class)))                 .thenReturn(createShoppingCartResponse());         PowerMockito.mockStatic(MerchantInitializationApi.class);         PowerMockito.when(MerchantInitializationApi.create(任何(MerchantInitializationRequest.class)))                 .thenReturn(" createMerchantInitializationResponse&#34);

}