一、背景
很多公司对分支单测覆盖率会有一定的要求,比如 单测覆盖率要达到 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
使用方式
或者直接使用快捷键
生成的代码:
这个例子比较简单,只是给大家演示如何使用,实际使用中类复杂时,就能体会到该插件的强大。
自己在此基础上简单修改即可。
大家还可以根据自己需要对模板进行修改:
三、总结
灵活使用单元测试自动生成插件,可以节省很多时间。
大家可以安装并试用这两个插件,然后根据自己的喜好,选择最适合自己的那个插件使用。 也可以根据自己的喜好,对模板进行调整。 此外,大家不要对插件要求太高,生成的单元测试或多或少还是需要自己进行简单修改。