Mockito单元测试

为什么要使用Mock?

比如你现在想要测试一个方法是否是正常的,但是这个方法中有很多调用数据库的代码,那么我们就可以在每个调用数据库的地方打桩,模拟一下访问完数据库之后的返回值,这样我们就可以在测试的时候避免访问数据库了,可以非常高效地完成我们的单元测试,已达到验证我们写的方法到底对不对的目的。

参考:https://blog.csdn.net/qq_45950109/article/details/121273429

一、Mockito单元测试步骤:

1、导入依赖

2、选中需要进行单元测试的类(以UserServiceImpl为例),alt+enter生成test,选择要生成的方法,点击回车

二、单元测试规范

1、在测试类上加上@RunWith(MockitoJUnitRunner.class)注解提供Mockito运行环境,加@PrepareForTest注解mock静态方法,使用@Mock注解生成模拟对象(以UserServiceImpl为例)

2、@before的作用就是在一个类中最先执行的方法;

打桩:打桩其实就是在真实代码的地方用一个模拟方法代替,然后真实方法执行到这个地方的时候,它的返回值是我们模拟的返回值。when().thenReturn(),用这句代码我们可以自己给某个方法设定返回值,这就叫做打桩。

3、单侧方法:我们单测方法里面的模拟返回值必须要符合真实方法中的逻辑,要不然真实方法会报异常,我们的单测就不能通过。

assert关键字可以终止程序正常运行,assert关键字的作用是断言,如果它发现后面是true,那么程序可以正常运行,但是如果它发现后面是false,那么它会主动抛出一个异常并终止正在运行的程序。

三、查看覆盖率

1、引入jacoco插件坐标

要想要使用jacoco在线生成覆盖率,首先需要在pom.xml文件中引入jacoco插件,如下图:

2、点击Run ‘’ with Coverage,即可生成单元测试覆盖率报告,点击可以导出到本地。

成单元测试覆盖率报告,点击可以导出到本地。

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: