【系列教程】Java基础语法(八):Junit测试
Junit测试
Junit单元测试
Junit的概念
- 概述 : Junit是Java语言编写的第三方单元测试框架(工具类)
- 作用 : 用来做“单元测试”——针对某个普通方法,可以像main()方法一样独立运行,它专门用于测试某个方法。
Junit的使用步骤
1.在模块下创建lib文件夹,把Junit的jar包复制到lib文件夹中
2.选中Junit的jar包,右键选中 add as Library,把JUnit4的jar包添加到classPath中
maven 引入依赖
1 | <dependency> |
3.在测试方法上面写上@Test注解
4.执行测试方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14public class Person {
public void test1(){
System.out.println("Person test1 方法执行了....");
}
public void test2(){
System.out.println("Person test2 方法执行了....");
}
}
执行测试方法
1.选中方法名—>右键—>选中执行 只执行选中的测试方法
2.选中类名—–>右键—>选中执行 执行该类中所有的测试方法
3.选中模块—- ->右键—>选中all tests 执行 执行该模块中所有的测试方法
如何查看测试结果
- 绿色:表示测试通过
- 红色:表示测试失败,有问题
Junit单元测试的注意实现
- 1.测试方法的权限修饰符一定是public
- 2.测试方法的返回值类型一定是void
- 3.测试方法一定没有参数
- 4.测试方法 的声明之上一定要使用@Test注解
Junit注解
- @Test:测试注释指示该公共无效方法它所附着可以作为一个测试用例。
- @Before:用来修饰方法,该方法会在每一个测试方法执行之前执行一次。
- @After:用来修饰方法,该方法会在每一个测试方法执行之后执行一次。(如执行每一个测试后重置某些变量,删除临时变量等)
- @BeforeClass:用来静态修饰方法,该方法会在所有测试方法之前执行一次,而且只执行一次。(一般是测试计算共享配置方法(如连接到数据库)。)
- @AfterClass:用来静态修饰方法,该方法会在所有测试方法之后执行一次,而且只执行一次。(AfterClass 注解可以使用以清理建立方法,(从数据库如断开连接)。)
- @Ignore:当想暂时禁用特定的测试执行可以使用忽略注释。每个被注解为 @Ignore 的方法将不被执行。
1 | public class Student { |
Junit断言
断言是编程术语,表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。
- 断言:预先判断某个条件一定成立,如果条件不成立,则直接报错。 使用Assert类中的assertEquals()方法
使用断言可以创建更稳定、品质更好且 不易于出错的代码。当需要在一个值为 false 时中断当前操作的话,可以使用断言。单元测试必须使用断言(Junit/JunitX)。
常用断言方法
断言 | 描述 |
---|---|
void assertEquals([String message], expected value, actual value) | 断言两个值相等。值可能是类型有 int, short, long, byte, char or java.lang.Object. 第一个参数是一个可选的字符串消息 |
void assertTrue([String message], boolean condition) | 断言一个条件为真 |
void assertFalse([String message],boolean condition) | 断言一个条件为假 |
void assertNotNull([String message], java.lang.Object object) | 断言一个对象不为空(null) |
void assertNull([String message], java.lang.Object object) | 断言一个对象为空(null) |
void assertSame([String message], java.lang.Object expected, java.lang.Object actual) | 断言,两个对象引用相同的对象 |
void assertNotSame([String message], java.lang.Object unexpected, java.lang.Object actual) | 断言,两个对象不是引用同一个对象 |
void assertArrayEquals([String message], expectedArray, resultArray) | 断言预期数组和结果数组相等。数组的类型可能是 int, long, short, char, byte or java.lang.Object. |
案例
1 | public class Demo02 { |
扩展
测试本身也是一套完整学科
1 | 单元测试 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 左耳!
评论