TA的每日心情 | 无聊 昨天 09:05 |
---|
签到天数: 1050 天 连续签到: 1 天 [LV.10]测试总司令
|
JUnit
JUnit是一个开源的Java语言的单元测试框架,专门针对Java设计,使用最广泛。
JUnit 注解
以上就是最常用的五种注解了。
JUnit 断言
使用JUnit进行单元测试,我们可以使用断言(Assertion)来测试期望结果,可以方便地组织和运行测试,并方便地查看测试结果。
Junit所有的断言都包含在 Assert 类中。
这个类提供了很多有用的断言方法来编写测试用例。只有失败的断言才会被记录。Assert 类中的一些有用的方法列式如下:
通常我用的最多的还是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>
复制代码
测试结果如下:
左侧结果显示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>
复制代码
结果如下:
可以看到,先输出了开始执行,再输出testAdd(),最后输出结束执行。这样当我们需要处理一些公共的事务时,就可以采用@BeforeEach注解和@AfterEach注解。
小结
1、定义一个测试用例,测试类名为被测试类名+Test。
2、定义测试方法:可以独立运行。
·方法名:test+测试的方法名。
· 返回值:void。
· 参数列表:空参。
3、给方法加@Test注解,用来识别为测试方法。
4、存在预处理和收尾的处理时,可以使用@BeforeEach和@AfterEach注解,当然也可以用@BeforeAll和@AfterAll注解。
5、关于JUnit还有很多高级的测试内容,比如参数测试、套件测试等,但是目前我用的就只是这些简单的,所以以后有机会再总结一下。
|
|