51Testing软件测试论坛
标题:
JUnit单元测试入门分享
[打印本页]
作者:
lsekfe
时间:
2022-11-10 13:36
标题:
JUnit单元测试入门分享
JUnit
JUnit是一个开源的
Java
语言的
单元测试
框架,专门针对Java设计,使用最广泛。
JUnit 注解
[attach]144737[/attach]
以上就是最常用的五种注解了。
JUnit 断言
使用JUnit进行单元测试,我们可以使用断言(Assertion)来测试期望结果,可以方便地组织和运行测试,并方便地查看测试结果。
Junit所有的断言都包含在 Assert 类中。
这个类提供了很多有用的断言方法来编写测试用例。只有失败的断言才会被记录。Assert 类中的一些有用的方法列式如下:
[attach]144738[/attach]
通常我用的最多的还是assertEquals( )方法。
Junit 测试用例
下面就做一个最简单的示例,简单展示用法:
<font size="3">package cn.hust.enhance;
public class Calculator {
int age;
/**
* 加法
* @param a
* @param b
* @return
*/
public int add(int a,int b){ return a+b; }
/**
* 减法
* @param a
* @param b
* @return
*/
public int sub(int a,int b){
return a-b;
}
}</font>
复制代码
这是一个Calculator类,里面有add( )和sub( )两个方法,分别代表加和减操作。
为了测试这两个方法,我们创建一个CalculatorTest类。
<font size="3"> package cn.hust.test;
import cn.hust.enhance.Calculator;
import org.junit.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class CalculatorTest {
/**
* 测试add方法
*/
@Test
public void testAdd() {
Calculator calculator=new Calculator();
int result = calculator.add(1, 2);
//断言的第一个参数表示预期的值,第二个参数表示运算的结果
//这里的的计算结果与预期结果是一致的,所以测试通过
assertEquals(3, result);
System.out.println("testAdd()");
}
/**
* 测试sub方法
*/
@Test
public void testSub() {
Calculator calculator=new Calculator();
int result = calculator.sub(1, 2);
//断言的第一个参数表示预期的值,第二个参数表示运算的结果
//这里的的计算结果与预期结果是不一致的,所以测试没通过
assertEquals(1, result);
System.out.println("testSub()");
}
}</font>
复制代码
测试结果如下:
[attach]144739[/attach]
左侧结果显示testSub()方法没有通过,从右边的结果可以看到,testSub()预期的结果是 1,而实际的结果为-1。而且从输出的内容来看,当断言检查的结果不通过时,后面的语句并不会被执行。
CalculatorTest类加上@BeforeEach注解和@AfterEach注解:
新增代码如下:
<font size="3"> /**
* 初始化方法
* 在所有方法执行前执行这个方法
*/
@BeforeEach
public void init() {
System.out.println("开始执行");
}
/**
*每个测试方法运行后,运行close()方法
*/
@AfterEach
public void close() {
System.out.println("结束执行");
}</font>
复制代码
结果如下:
[attach]144740[/attach]
可以看到,先输出了开始执行,再输出testAdd(),最后输出结束执行。这样当我们需要处理一些公共的事务时,就可以采用@BeforeEach注解和@AfterEach注解。
小结
1、定义一个测试用例,测试类名为被测试类名+Test。
2、定义测试方法:可以独立运行。
·
方法名:test+测试的方法名。
·
返回值:void。
·
参数列表:空参。
3、给方法加@Test注解,用来识别为测试方法。
4、存在预处理和收尾的处理时,可以使用@BeforeEach和@AfterEach注解,当然也可以用@BeforeAll和@AfterAll注解。
5、关于JUnit还有很多高级的测试内容,比如参数测试、套件测试等,但是目前我用的就只是这些简单的,所以以后有机会再总结一下。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2