当前位置:   article > 正文

junit5+mockito 实现对私有方法进行模拟和测试_powermock junit5

powermock junit5

需引入依赖:

  1. <dependency>
  2. <groupId>org.powermock</groupId>
  3. <artifactId>powermock-api-mockito2</artifactId>
  4. <version>2.0.9</version>
  5. <scope>test</scope>
  6. </dependency>
  7. <dependency>
  8. <groupId>org.powermock</groupId>
  9. <artifactId>powermock-module-junit4</artifactId>
  10. <version>2.0.9</version>
  11. <scope>test</scope>
  12. </dependency>


 

  1. package com.zdsoft.dataprepare.service.impl;
  2. import com.zdsoft.dataprepare.dto.CheckDataVO;
  3. import com.zdsoft.dataprepare.entity.DataCheckRecord;
  4. import org.junit.Test;
  5. import org.junit.jupiter.api.Assertions;
  6. import org.junit.runner.RunWith;
  7. import org.powermock.core.classloader.annotations.PrepareForTest;
  8. import org.powermock.modules.junit4.PowerMockRunner;
  9. import org.powermock.reflect.Whitebox;
  10. import static org.junit.Assert.assertEquals;
  11. @RunWith(PowerMockRunner.class)
  12. @PrepareForTest(value = {DataCheckRecordServiceImpl.class})
  13. public class DataCheckRecordServiceImplTest {
  14. /**
  15. * 验证的dcsResponse中的resolveResultState为0时 其余均为好的
  16. * @return state为11 ; stateDesc 为:"状态解释:财税数据授权失败,需重新授权,模型返回信息或异常信息:发票数据状态接口轮询准备数据达到最高次数终止任务,输入:{\"sourceType\":\"05\",\"creditTraceNo\":\"20230828001\",\"type\":\"M04\"},输出:{\"data\":{\"data\":\"{\\\"orderId\\\":\\\"S204909230007\\\",\\\"resolveResultState\\\":\\\"0\\\",\\\"taxNo\\\":\\\"TAX_NO_0120230918164844793\\\",\\\"taxpayerId\\\":\\\"91500000MA5UTMTB6F\\\",\\\"userFeedbackState\\\":\\\"2\\\"}\",\"subCode\":\"SUCCESS\",\"errCode\":\"000000\",\"errMsg\":\"交易成功\",\"rtnMsg\":\"服务调用成功\",\"bizSuccess\":true,\"rtnCode\":\"SUCCESS\"}}"
  17. * @return dcsResponse.getMsg信息
  18. */
  19. @Test
  20. public void testCheckEntVoiceStatus() throws Exception {
  21. // 创建待验证的对象
  22. CheckDataVO checkDataVO = new CheckDataVO();
  23. checkDataVO.setState(11);
  24. String stateDesc = "状态解释:财税数据授权失败,需重新授权,模型返回信息或异常信息:发票数据状态接口轮询准备数据达到最高次数终止任务,输入:{\"sourceType\":\"05\",\"creditTraceNo\":\"20230828001\",\"type\":\"M04\"},输出:{\"data\":{\"data\":\"{\\\"orderId\\\":\\\"S204909230007\\\",\\\"resolveResultState\\\":\\\"0\\\",\\\"taxNo\\\":\\\"TAX_NO_0120230918164844793\\\",\\\"taxpayerId\\\":\\\"91500000MA5UTMTB6F\\\",\\\"userFeedbackState\\\":\\\"2\\\"}\",\"subCode\":\"SUCCESS\",\"errCode\":\"000000\",\"errMsg\":\"交易成功\",\"rtnMsg\":\"服务调用成功\",\"bizSuccess\":true,\"rtnCode\":\"SUCCESS\"}}";
  25. checkDataVO.setStateDesc(stateDesc);
  26. DataCheckRecord checkRecord = new DataCheckRecord();
  27. checkRecord.setCheckState(9);
  28. checkRecord.setCheckSerialNumber("SN202403061002249166HSJV02");
  29. checkRecord.setDecResponse("{\"code\":500,\"data\":null,\"msg\":\"发票数据状态接口轮询准备数据达到最高次数终止任务,输入:{\\\"sourceType\\\":\\\"05\\\",\\\"creditTraceNo\\\":\\\"20230828001\\\",\\\"type\\\":\\\"M04\\\"},输出:{\\\"data\\\":{\\\"data\\\":\\\"{\\\\\\\"orderId\\\\\\\":\\\\\\\"S204909230007\\\\\\\",\\\\\\\"resolveResultState\\\\\\\":\\\\\\\"0\\\\\\\",\\\\\\\"taxNo\\\\\\\":\\\\\\\"TAX_NO_0120230918164844793\\\\\\\",\\\\\\\"taxpayerId\\\\\\\":\\\\\\\"91500000MA5UTMTB6F\\\\\\\",\\\\\\\"userFeedbackState\\\\\\\":\\\\\\\"2\\\\\\\"}\\\",\\\"subCode\\\":\\\"SUCCESS\\\",\\\"errCode\\\":\\\"000000\\\",\\\"errMsg\\\":\\\"交易成功\\\",\\\"rtnMsg\\\":\\\"服务调用成功\\\",\\\"bizSuccess\\\":true,\\\"rtnCode\\\":\\\"SUCCESS\\\"}}\"}");
  30. String serialNumber = "SN202403061002249166HSJV02";
  31. CheckDataVO checkDataVO1 = Whitebox.invokeMethod(DataCheckRecordServiceImpl.class, "checkEntVoiceStatus", checkRecord, serialNumber);
  32. Assertions.assertAll(() -> {
  33. assertEquals(checkDataVO.getState(), checkDataVO1.getState());
  34. assertEquals(checkDataVO.getStateDesc(), checkDataVO1.getStateDesc());
  35. });
  36. }
  37. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/712435
推荐阅读
相关标签
  

闽ICP备14008679号