ClientResponse mockito测试用例失败

时间:2013-11-29 11:35:01

标签: junit mockito

Iam正在研究mockito testcases正面测试方法正在执行,但是在异常测试方法中它的异常失败

java.lang.Exception: Unexpected exception, expected<com.apple.ist.retail.xcard.common.exception.InvalidArgumentException> but was<org.jboss.resteasy.client.ClientResponseFailure>
    at 

以下是失败的测试方法及其包含客户端对象的父类

package com.apple.ist.retail.xcard.ws.exception;



public class TestActivatePrepaidCard extends CertificateResourceTestCase {

    public TestActivatePrepaidCard(String aMediaType) {
        super(aMediaType);
    }

    @Before
    public void setUp() {
        super.setUp();
    }

    @Test(expected = InvalidArgumentException.class)
    public void testActivatePrepaidCard_InvalidArgumentException()
            throws DuplicateCertificateIDException, InvalidArgumentException,
            DupTxnRefException, AmountException, SystemException,
            XCardException {

        when(
                server.activatePrepaidCard(any(DiagnosticContext.class),
                        any(String.class), any(Number.class),
                        any(Amount.class), any(String.class), any(int.class),
                        any(HashMap.class), any(String.class),
                        any(SalesOrg.class), any(TxnRef.class))).thenThrow(
                new InvalidArgumentException("Invalid Argument ",
                        INVALID_ARGUMENT));
        client.activatePrepaidCard(certificateRequest);

    }

它在client.activatePrepaidCard(certificateRequest)附近失败;与ClientResponseFailure异常 家长测试案例是

package com.apple.ist.retail.xcard.ws.exception;

@RunWith(value = Parameterized.class)
public abstract class CertificateResourceTestCase extends Assert {

    protected CertificateResource client;
    protected XCardServiceServer server;
    protected CertificateResource resource;
    protected CertificateRequest certificateRequest;


//  protected Dispatcher dispatcher = MockDispatcherFactory.createDispatcher();


    private String mediaType;

    public CertificateResourceTestCase(String aMediaType) {
        this.mediaType = aMediaType;
        server = mock(XCardServiceServer.class);
        CertificateResourceImpl xcardServiceRs = new CertificateResourceImpl();
        xcardServiceRs.setService(server);
        Dispatcher dispatcher = MockDispatcherFactory.createDispatcher();
        dispatcher.getRegistry().addSingletonResource(xcardServiceRs);

        dispatcher.getProviderFactory().addExceptionMapper(
                XCardExceptionMapper.class);
        dispatcher.getProviderFactory().addExceptionMapper(
                BusinessExceptionMapper.class);
        dispatcher.getProviderFactory().addExceptionMapper(
                RuntimeExceptionMapper.class);
        dispatcher.getProviderFactory().addExceptionMapper(
                BusinessExceptionMapper.class);
        dispatcher.getProviderFactory().addExceptionMapper(
                RuntimeExceptionMapper.class);
        dispatcher.getProviderFactory()
                .getServerMessageBodyWriterInterceptorRegistry()
                .register(new XCardTxnWriterInterceptor());

        dispatcher.getProviderFactory().getContextDataMap()
                .put(HttpServletRequest.class, new MockHttpServletRequest());
        client = ProxyFactory.create(CertificateResource.class, "/", new InMemoryClientExecutor(dispatcher));
        diagnosticContext.setReportingRecommended(false);
    }

    @After
    public void tearDown() throws Exception {
        Mockito.reset(server);
    }

请告诉我我的代码中有什么问题,我正在粘贴完整的代码,以便我不会错过任何细节

1 个答案:

答案 0 :(得分:1)

您的代码正在抛出ClientResponseFailure。调试您的测试并找出原因。使用异常断点。