一种方法的EasyMock处理多个异常

用户名

在我的代码中,我遇到了一个BusinessServiceException。在此BusinesserviceException的Catch块中,它抛出了另一个RestValidationException。我无法处理此RestValidation Exception。我遇到的错误是意外的RestValidationException。请帮忙...

try {
        if(null == identityProxy.getIdentityProxy() || null == identityProxy.getIdentityProxyType() || identityProxy.getIdentityProxy().isEmpty() || identityProxy.getIdentityProxyType().isEmpty()){
            throw new RestValidationException(RestErrorCodes.INVALID_IDENTITY_PROXY.toString());
        }
        restValidations.validIdentityProxy(identityProxy.getIdentityProxy(),identityProxy.getIdentityProxyType());
        if(userHelper.addUserIdentityProxy(partnerId, userId,identityProxy.getIdentityProxy(),identityProxy.getIdentityProxyType(), null, 30L,true)) {
            successResponseVO.setSuccess(RESTConstants.TRUE);
        } else {
            successResponseVO.setSuccess(RESTConstants.FALSE);
        }
    } catch (BusinessServiceException be) {
        try{
             if(be.getNewInformationCode().equalsIgnoreCase(BusinessErrorCodes.UNIQUE_PROXY_PHONE_ERROR.toString())){
                    throw new RestValidationException(RestErrorCodes.VALIDATION_UNIQUE_PHONE_PROXY.toString());}
                 else if(be.getNewInformationCode().equalsIgnoreCase(BusinessErrorCodes.UNIQUE_PROXY_EMAIL_ERROR.toString())){
                     throw new RestValidationException(RestErrorCodes.VALIDATION_UNIQUE_EMAIL_PROXY.toString());
                 }else if(be.getNewInformationCode().equalsIgnoreCase(BusinessErrorCodes.UNIQUE_PROXY_LOYALTY_ERROR.toString())){
                     throw new RestValidationException(RestErrorCodes.VALIDATION_UNIQUE_LOYALTY_PROXY.toString());
                 }else{
                     throw new BusinessServiceException(partnerId, "Error in UserRestController : updateUser()", be, be.getNewInformationCode(), params);
                 } 
            }catch(RestValidationException ve){
                throw new RestValidationException(partnerId, "Error in UserRestController : updateUser()", ve, ve.getNewInformationCode(), params);
            }

        }catch (RestValidationException ve){
            throw new RestValidationException(partnerId, "Error in UserRestController : updateUser()", ve, ve.getNewInformationCode(), params);
        }  catch (Exception e) {
            throw new RestInternalErrorException(partnerId, "Error in UserRestController : updateUser()", e, null, params);
        } 

    return successResponseVO;
}

EasyMock代码:

   @Test(expected = BusinessServiceException.class)
    public void testUpdateUserDetailBusinessServiceExceptionEmail() throws BusinessException, RestValidationException,RestInternalErrorException {

        UserDetailVO userDetailVO = new UserDetailVO();
        UserDetail userDetail = new UserDetail();
        userDetail.setPhoneNumber("04828229279");
        userDetail.setEmail("[email protected]");
        String deliveryType = "deliveryType";
        List<UserDeliveryPreference> userDeliveryPreference = new ArrayList<UserDeliveryPreference>();
        UserDeliveryPreference e = new UserDeliveryPreference();
        e.setDeliveryType(deliveryType);
        userDeliveryPreference.add(e);
        userDetail.setUserDeliveryPreference(userDeliveryPreference);
        userDetail.setSendDigitalReceipt("never");
        UserEvent userEvent = new UserEvent();
        userEvent.setEventType(EventsType.UserPreferenceUpdate.toString());
        userEvent.setPartnerId(partnerId);
        userEvent.setUserId(userId);
        userEvent.setTimestamp(new Date());
        userEvent.setChannel(Channel.rest.toString());
        EasyMock.expect(request.getHeader("x-forwarded-for")).andReturn("x-forwarded-for");
        EasyMock.expect(request.getHeader("user-agent")).andReturn("user-agent");
        Map<String, String> details = new HashMap<String, String>();
        details.put(RESTConstants.IP_ADDRESS, "x-forwarded-for");
        details.put(RESTConstants.HTTP_USER_AGENT, "user-agent");
        details.put(RESTConstants.APPID, "4567");
        userEvent.setDetails(details);
        EasyMock.expect(restValidations.validateDeliveryPreference(userDetailVO)).andReturn(true);
        EasyMock.expect(userHelper.populateuserDetail(userDetailVO)).andReturn(userDetail);
        EasyMock.expect( restValidations.isAllRequiredFieldExistsForUserUpdate(userDetail)).andReturn(true);
        EasyMock.expect(restValidations.validatePhonePattern("04828229279")) .andReturn(true);
        EasyMock.expect(restValidations.validateEmailPattern("[email protected]")).andReturn(true);
        EasyMock.expect( restValidations.validDeliveryPreference(userDeliveryPreference)) .andReturn(true);
        EasyMock.expect(restValidations.validateOptin("never")).andReturn("never");
        String newInformationCode = BusinessErrorCodes.UNIQUE_PROXY_EMAIL_ERROR.toString();
        Serializable[] params = null;
        try {
            EasyMock.expect(userHelper.updateUserDetail(EasyMock.same(userId),EasyMock.same(partnerId),EasyMock.isA(UserDetail.class),EasyMock.isA(UserEvent.class))).andThrow( new BusinessServiceException(partnerId, "fails", null, newInformationCode, params));
            EasyMock.replay(userHelper, request, restValidations);
            userController.updateUser(partnerId, userId, "4567", "1.0", "nonce", userDetailVO, request);
        } finally {
            EasyMock.verify(userHelper, request, restValidations);
        }
    }
詹姆斯·B

您的测试似乎期望抛出错误的异常类型。

改变:

@Test(expected = BusinessServiceException.class)
public void testUpdate(parameters){

到:

@Test(expected = RestValidationException.class)
public void testUpdate(parameters){

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

引发异常并将其记录的一种方法

来自分类Dev

Android 尝试捕获一种方法的异常值

来自分类Dev

用一种方法创建多个图像

来自分类Dev

如何用一种方法返回多个表?

来自分类Dev

用一种方法创建多个图像

来自分类Dev

jQuery用一种方法隐藏多个对象

来自分类Dev

一种方法返回多个整数

来自分类Dev

骨干网多个事件处理程序发出:同一事件仅调用一种方法

来自分类Dev

一种方法允许引发多种类型的异常或仅引发一种异常会更好吗?

来自分类Dev

phpunit,一种测试-一种方法?

来自分类Dev

在Xcode中,是否有一种方法可以仅针对一个或多个行绕过“所有异常”断点?

来自分类Dev

“文字”是一种方法吗?

来自分类Dev

如何模拟一种方法以返回某物而不是引发异常(PowerMock?)

来自分类Dev

我如何找出一种方法可以抛出哪种异常?

来自分类Dev

Rails:JSON属性作为一种方法处理。没有方法错误

来自分类Dev

一种方法称为多种方法

来自分类Dev

有没有一种方法可以一次清除多个变量?

来自分类Dev

在一种方法中构建多个查询的最佳方法 c# asp.net

来自分类Dev

有没有一种方法可以查看gulp watch处理的文件?

来自分类Dev

有没有一种方法可以处理NSUserDefaults存储的信息

来自分类Dev

Java中是否有一种方法可以让编译器处理互斥选项?

来自分类Dev

python中是否有一种方法可以更改处理get的收益的顺序?

来自分类Dev

有没有一种方法可以衡量javascript cpu处理滞后

来自分类Dev

如何用一种方法处理两个datagridviews错误?

来自分类Dev

(批处理)有没有一种方法可以使可点击的按钮?

来自分类Dev

有没有一种方法可以处理SQLKata中的现有查询?

来自分类Dev

VB.NET通过一种方法处理多形式

来自分类Dev

在对象通过另一种方法处理时管理对象属性的更改

来自分类Dev

有没有一种方法可以禁用DefaultValueAttributes的处理?

Related 相关文章

  1. 1

    引发异常并将其记录的一种方法

  2. 2

    Android 尝试捕获一种方法的异常值

  3. 3

    用一种方法创建多个图像

  4. 4

    如何用一种方法返回多个表?

  5. 5

    用一种方法创建多个图像

  6. 6

    jQuery用一种方法隐藏多个对象

  7. 7

    一种方法返回多个整数

  8. 8

    骨干网多个事件处理程序发出:同一事件仅调用一种方法

  9. 9

    一种方法允许引发多种类型的异常或仅引发一种异常会更好吗?

  10. 10

    phpunit,一种测试-一种方法?

  11. 11

    在Xcode中,是否有一种方法可以仅针对一个或多个行绕过“所有异常”断点?

  12. 12

    “文字”是一种方法吗?

  13. 13

    如何模拟一种方法以返回某物而不是引发异常(PowerMock?)

  14. 14

    我如何找出一种方法可以抛出哪种异常?

  15. 15

    Rails:JSON属性作为一种方法处理。没有方法错误

  16. 16

    一种方法称为多种方法

  17. 17

    有没有一种方法可以一次清除多个变量?

  18. 18

    在一种方法中构建多个查询的最佳方法 c# asp.net

  19. 19

    有没有一种方法可以查看gulp watch处理的文件?

  20. 20

    有没有一种方法可以处理NSUserDefaults存储的信息

  21. 21

    Java中是否有一种方法可以让编译器处理互斥选项?

  22. 22

    python中是否有一种方法可以更改处理get的收益的顺序?

  23. 23

    有没有一种方法可以衡量javascript cpu处理滞后

  24. 24

    如何用一种方法处理两个datagridviews错误?

  25. 25

    (批处理)有没有一种方法可以使可点击的按钮?

  26. 26

    有没有一种方法可以处理SQLKata中的现有查询?

  27. 27

    VB.NET通过一种方法处理多形式

  28. 28

    在对象通过另一种方法处理时管理对象属性的更改

  29. 29

    有没有一种方法可以禁用DefaultValueAttributes的处理?

热门标签

归档