jmockit单元测试中有私有方法怎么处理

直接上代码哈,

首先是待测试的service(其中调用了私有方法)

public ResponseResult achieveMedal(String autoshowCode, String medalCode, Integer userId, String tempUserId) {
    ResponseResult responseResult = new ResponseResult();
    responseResult.setReturncode(-1);
    AsUserIntegral asUserIntegral = new AsUserIntegral();
    int integral = getMedalIntegralByMedalCode(autoshowCode, medalCode);
    if(integral >0){
        asUserIntegral.setIntegral(integral);
    }else {
        responseResult.setMessage("勋章不存在");
        return responseResult;
    }
   return responseResult;
}
private int getMedalIntegralByMedalCode(String autoshowCode, String medalCode){
    return 1;
}

下面是jmockit进行单元测试的方法

@Test
public void achieveMedalTest(){
    final String autoshowCode = "frankfurt";
    final String medalCode = "3003";
    final String tempUserId = "14951641585723303";
    final Integer userId = 44388195;
    new MockUp<IntegralServiceImpl>(){
        @Mock
        private int getMedalIntegralByMedalCode(String autoshowCode, String medalCode){
            return 100;
        }
    };
    new NonStrictExpectations(){//录制预期模拟行为
        {
            asUserIntegralMapper.selectMedalCountByCond((AsIntegralCond) any);
            result = 0;
            asUserIntegralMapper.insertSelective((AsUserIntegral) any);
            result = 1;
        }
    };
    ResponseResult result = targetObject.achieveMedal(autoshowCode,medalCode, userId, tempUserId);
    Assert.assertEquals(result.getResult(), 100);
}

着重看绿色的部分,getMedalIntegralByMedalCode方法是我的私有方法,测试时,期望的返回值是100。这样私有方法就能

转载于:https://my.oschina.net/u/1762811/blog/1031388

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>