当前位置:网站首页>在IDEA中使用JUnit4和JUnitGenerator V2.0自动生成测试模块
在IDEA中使用JUnit4和JUnitGenerator V2.0自动生成测试模块
2022-07-30 20:49:00 【胡萝卜的兔】
因为项目的需要,所以研究了一下自动生成测试代码。将经验记录下来,总会有用的。我个人认为,好记性不如多做笔记多反思总结。
1. 前提条件
- 开发环境已正确配置
- 工程已解决JUnit依赖关系(pom.xml)
- 我用的是4.12版本:
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency>
2. IDEA中JUnit配置
打开Settings窗口搜索junit,如图(两个插件都勾选添加):

JUnitGenerator V2.0插件,可以帮助我们自动生成测试代码。如果搜索junit没有JUnitGenerator V2.0时,如下图操作(下载添加):



调用模板的方法(Alt+Insert)默认测试所有所有方法。若想要动态个性化生成,可以在所要测试的类页面上,使用该快捷操作Ctrl + Shift + T,如下图个性化设置:


现在可以通过右键菜单在这个类上运行'***测试类名**'来进行测试,或通过Run → Edit Configurations来进行。

3. JUnit常用断言及注解
JUnit为我们提供了一些辅助函数,他们用来帮助我们确定被测试的方法是否按照预期的效果正常工作,通常,把这些辅助函数称为断言。
断言核心方法

注解

一个测试类单元测试的执行顺序为:
@BeforeClass –> @Before –> @Test –> @After –> @AfterClass每一个测试方法的调用顺序为:
@Before –> @Test –> @After代码示例:
public class JunitFlowTest {
/* *
*1. @BeforeClass修饰的方法会在所有方法被调用前被执行,
* 而且该方法是静态的,所以当测试类被加载后接着就会运行它,
* 而且在内存中它只会存在一份实例,它比较适合加载配置文件。
* 2. @AfterClass所修饰的方法通常用来对资源的清理,如关闭数据库的连接
* 3. @Before和@After会在每个测试方法的前后各执行一次。
* */
@BeforeClass
public static void setUpBeforeClass() throws Exception {
System.out.println("this is beforeClass...");
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
System.out.println("this is afterClass...");
}
@Before
public void setUp() throws Exception {
System.out.println("this is before...");
}
/**
* 即使在@Before注解方法、@Test注解方法中抛出了异常,
* 所有的@After注解方法依然会被执行
*/
@After
public void tearDown() throws Exception {
System.out.println("this is after");
}
/* *
*
* 1. Failure一般由单元测试使用的断言方法判断失败所引起的,
* 这经表示测试点发现了问题
* ,就是说程序输出的结果和我们预期的不一样。
* 2. error是由代码异常引起的,它可以产生于测试代码本身的错误,
* 也可以是被测试代码中的
* 一个隐藏的bug
* 3.测试用例不是用来证明你是对的,而是用来证明你没有错。
*/
@Test
public void testAdd() {
assertEquals(5, new Calculate().add(3,3));
}
@Test
public void testDivide() {
assertEquals(3, new Calculate().divide(6, 0));
}
}边栏推荐
- MySQL——几种常见的嵌套查询
- excel数字显示e+17怎么恢复?excel数字变成了小数点+E+17的解决方法
- @WebServlet注解(Servlet注解)
- canvas基础讲解加示例
- Network layer protocol------IP protocol
- HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界
- Cookie中的JSESSIONID说明
- MySQL的DATE_FORMAT()函数将Date转为字符串
- 都在说软件测试没前途,饱和了?为何每年还会增加40万测试员?
- [Typora] This beta version of Typora is expired, please download and install a newer version.
猜你喜欢
随机推荐
MySQL_关于JSON数据的查询
【回归预测-CNN预测】基于卷积神经网络CNN实现数据回归预测附matlab代码
倾斜文档扫描与字符识别(opencv,坐标变换分析)
《快速掌握QML》第六章 动画
Flink_CDC搭建及简单使用
MySQL数据库字段超长问题
vlan简单实验
巴比特 | 元宇宙每日必读:洗牌将至,数藏行业下半场是否会迎来新一批领头羊?是否会出现新玩法?...
365天挑战LeetCode1000题——Day 044 按公因数计算最大组件大小 并查集
excel数字显示e+17怎么恢复?excel数字变成了小数点+E+17的解决方法
Mysql索引特性(重要)
什么是公约数
canvas基础讲解加示例
MySQL的Replace用法详解
MySQL的on duplicate key update 的使用
MVC模式和三层架构
并发与并行的区别
How to make a deb package
啊?现在初级测试招聘都要求会自动化了?
深入浅出边缘云 | 3. 资源配置









