Junit回归测试框架的基本使用
测试先行的思想
单元测试Junit属于白盒测试
定义一个测试方法:
1.测试方法,必须是公共的无参数无返回的方法.建议使用test开头.
2.想要测试哪个方法,需要在该方法上贴一个注解@Test
1 | import org.junit.Test; |
Junit细节:
更多是针对接进行测试,要测试一个接口中的方法,必须按照规范流程
定义一个接口:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26package me.cscar.Junit;
/**
* 接口规范:文档注释
* 数学运算的加减乘除方法
*
* @author cscar
* @date 2019/3/29
*/
public interface IMath {
/**
* 计算两个数相加
* @param a
* @param b
* @return 和
*/
int add(int a, int b);
/**
* 计算两个数相除
* @param a
* @param b
* @return 商
*/
int div(int a, int b);
}
根据接口生成实现类:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17package me.cscar.Junit;
/**
* 实现IMath接口
*/
public class Math implements IMath {
public int add(int a, int b) {
return a + b;
}
public int div(int a, int b) {
return a / b;
}
}
根据接口生成实现类:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26package me.cscar.Junit;
import org.junit.Test;
import static org.junit.Assert.*;
//测试数学运算
public class MathTest {
/**
* 面向接口,创建数学类对象
*/
private IMath math = new Math();
public void add() {
int result = math.add(3, 4);
System.out.println(result);
}
public void div() {
int result = math.div(10, 0);
System.out.println(result);
}
}
断言:
猜测一个程序结果是否是期望结果
1.:Assert.assertEquals
(message, expected, actual):比较的值
三个参数:
message: 断言失败的提示信息,断言成功不会显示.
expected: 期望值
actual: 真实值
2.:Assert.assertSame(message, expected, actual):比较地址,是同一个对象
Assert.assertNotSame(message, expected, actual):断言不是同一个对象
3.:Assert.assertTrue(message, condition):断言condition应该为TRUE.
Assert.assertFalse(message, condition):断言condition应该为FALSE.
4.:Assert.assertNull(message, object):断言对象object为null.
Assert.assertNotNull(message, object):断言对象object不为null.
5.:@Test(expected=ArithmeticException.class)
期望该方法报错ArithmeticException.
6.:@Test(timeout=400)
期望该方法在400毫秒之内执行完成.
1 | @Test |
Junit自动化操作
自动初始化
自动销毁
1.@Test:需要测试的方法,必须贴Test注解.并且测试方法必须是公共无参数无返回的方法.
2.@Before:在所有的测试方法之前,都会执行的代码
3.@After:在所有的测试方法之后,都会执行的代码
4.@BeforeClass:在所有操作之前执行,只执行一次.
5.@AfterClass:在所有操作之前执行,只执行一次.
1 | package me.cscar.junit.work; |