zl程序教程

您现在的位置是:首页 >  Java

当前栏目

Java 项目自动生成单元测试插件推荐

2023-04-18 12:27:33 时间

一、背景

很多公司对分支单测覆盖率会有一定的要求,比如 单测覆盖率要达到 60% 或者 80%才可以发布。

有时候工期相对紧张,就优先开发功能,测试功能,然后再去补单元测试。

但是编写单元测试又比较浪费时间,有没有能够很大程度上自动化生成单元测试的插件,自己简单改改即可呢?

自己尝试在 Idea 插件库里搜索相关插件并去尝试使用,发现 TestMe 挺不错。

后面谎伴 同学推荐 Squaretest,也挺不错。

在这里简单介绍这两个插件。

二、推荐工具

2.1 Squaretest

官网插件地址 https://plugins.jetbrains.com/plugin/10405-squaretest

优点:生成的代码比较规整,生成的代码比较多 缺点:相对 Spring 的 Bean 生成单测代码时,只有通过 @Component 这类注解标注,属性只有通过 @Autowired 或者 @Resource 等注解注入时,才会自动给添加 @Mock 和 @InjectMock 这类属性。

使用方法: 可以在顶部菜单[Squaretest] 菜单中选择第一个或者使用对应快捷键创建单元测试。

生成的代码:

这个例子比较简单,只是给大家演示如何使用,实际使用中类复杂时,就能体会到该插件的强大。

官方演示1:

官方演示1:

官方示例3:

该插件也支持对生成的模板进行调整:

2.2 TestMe

插件官网地址 https://plugins.jetbrains.com/plugin/9471-testme

功能:

自动生成 Java JUnit 4/5, TestNG 单元测试 自动生成 Mockito mocks 自动生成 测试参数和断言语句 自动生成相关 mock 方法 IDEA 菜单: Code->TestMe, Code->Generate

优点:Spring 的 Bean 生成单测代码时,即使 @Component 这类注解标注,属性通过 Setter 注解注入时,也会自动给添加 @Mock 和 @InjectMock 这类属性。 缺点:默认模板会在生成的方法上都加上 throws Exception

使用方式

或者直接使用快捷键

生成的代码:

这个例子比较简单,只是给大家演示如何使用,实际使用中类复杂时,就能体会到该插件的强大。

自己在此基础上简单修改即可。

大家还可以根据自己需要对模板进行修改:

三、总结

灵活使用单元测试自动生成插件,可以节省很多时间。

大家可以安装并试用这两个插件,然后根据自己的喜好,选择最适合自己的那个插件使用。 也可以根据自己的喜好,对模板进行调整。 此外,大家不要对插件要求太高,生成的单元测试或多或少还是需要自己进行简单修改。