0


mock写单元测试和查数据库的单元测试

一:mock方式

  1. 在测试类上添加注解
@ExtendWith(MockitoExtension.class)
@MockitoSettings(strictness = Strictness.LENIENT)
  1. 将需要测试的类bean添加进来,该类中的其他bean也添加进来
//被测试类@Spy@InjectMocksprivateXXXMUService service;//测试类中添加的Autowired注解的bean@MockprivateXXXDao xxxDao;
  1. 给被测试类中用到的参数、返回值类创建对象
XXXVO parameterVO =newXXXVO();List<String> stringList =newArrayList<>();List<XXXVo> xxxList =newArrayList<>();
  1. 创建BeforeEach和AfterEach方法,在BeforeEach方法中给参数,返回值设置值
@BeforeEachvoidsetUp(){
        stringList.add("080");
        stringList.add("160");
        stringList.add("257");
        stringList.add("618");XXXVo xxxVo =newXXXVo();
        xxxVo.setXXX("202110");
        xxxList.add(xxxVo);

        parameterVO.setXXX("I");
        parameterVO.setYYY("202110");}@AfterEachvoidtearDown(){}
  1. 然后在test方法中设置被测试的方法
@Testvoidfunction(){//使用Mockito的when方法,来设置被测试方法需要用到的方法,参数可以直接通过Mockito方法进行虚拟参数设置,然后调用设置好的返回值就可以了。Mockito.when(xxxDao.xxx()).thenReturn(stringList );Mockito.when(xxxDao.xXXX(Mockito.any(),Mockito.anyList())).thenReturn(xxxList );//无返回值得可以通过字节码对象mock方法,参数直接mock进去Mockito.doNothing().when(Mockito.mock(对象.getClass()/类.Class)).xXXX方法(Mockito.anyList());//调用被测试方法
        service.testFunction(parameterVO);}

二:可以检测dao层sql的单元测试

  1. 测试类上需要添加的注解。
@RunWith(SpringRunner.class)@SpringBootTest(classes =AppServer.class)@TestPropertySource(properties ={"spring.datasource.data=classpath:data-base/report/data/data-xxx.sql"})publicclassXxxTest

@TestPropertySource注解中放的是sql地址
在这里插入图片描述
放在测试包的resources文件下
在这里插入图片描述
先删除表,然后将需要的字段值添加进去

  1. 设置参数以及进行测试
@AutowiredXxxService xxxService;@TestpublicvoidtestXxx(){try{XxxParameterVO xxxParameterVO =setParameterVO();//调用service中方法进行测试List<xxx> xxx = xxxService.findxxxVo(xxxParameterVO );}catch(Exception e){
            e.printStackTrace();}}XxxParameterVOsetParameterVO(){
        设置参数
    }

本文转载自: https://blog.csdn.net/weixin_45893072/article/details/128532955
版权归原作者 没差c 所有, 如有侵权,请联系我们删除。

“mock写单元测试和查数据库的单元测试”的评论:

还没有评论