附:本篇参考以下文章学习的。
一、使用IDEA创建单元测试
在需要测试的类右键,在弹出框选择GO TO->test二、知识点记录
- @Test注解:是Junit的测试方法。注意:测试方法必须是public void来修饰,并且不包含参数
- @BeforeClass注解:这个注解表示这个方法会在所有测试方法执行之前执行,因为是static修饰的静态方法,所以只会执行一次。通常用来进行一些资源的加载。
- @AfterClass注解:这个注解表示这个方法会在所有测试方法执行之后执行,因为是static修饰的静态方法,所以只会执行一次。通常用来进行一些资源的释放。
- @Before注解:这个注解表示这个方法会在每个测试方法之前执行一次,即有多少个测试方法就会执行多少次。
- @After注解:这个注解表示这个方法会在每个测试方法之后执行一次,即有多少个测试方法就会执行多少次。
- @RunWith注解:可以更改测试运行器org.junit.runner.Runner。通常用来组织多个测试类一起运行,称为测试套件,测试套件类不能包含其他测试方法。
- @Suite.SuiteClasses注解:更改测试运行器为Suite.class,并把多个测试类以数据的方式传到Suite.SuiteClasses({...})中去。
- @Ignore:所修饰的测试方法会被测试运行器忽略。
- 测试失败说明:
Failure:一般是由于测试结果和预期结果不一致引发的,表示测试的这个点发现了问题
error:是由代码异常引起的,它可以产生于测试代码本身的错误,也可以是被测试代码中隐藏的bug
三、断言
官方解释是:编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。
Junit测试框架中Assert类就是实现断言的工具,主要作用如下:单元测试用于判断某个特定条件下某个方法的行为;执行单元测试为了证明某段代码的执行结果和期望的一致。
1、assertEquals(expected, actual):查看两个对象是否相等。类似于字符串比较使用的equals()方法;
assertNotEquals(first, second):查看两个对象是否不相等。参数expected为用户期望某一时刻对象的值,actual为某一时刻对象实际的值。如果这两值相等的话(通过对象的equals方法比较),说明代码运行是正确的。
2、assertNull(object):查看对象是否为空。
assertNotNull(object):查看对象是否不为空。
3、assertSame(expected, actual):查看两个对象的引用是否相等,类似于使用“==”比较两个对象;
assertNotSame(unexpected, actual):查看两个对象的引用是否不相等,类似于使用“!=”比较两个对象。
4、assertTrue(String message, boolean condition) 要求condition == true,查看运行的结果是否为true;
assertFalse(String message, boolean condition) 要求condition == false,查看运行的结果是否为false。
以判断某个条件是真还是假,如果和预期的值相同则测试成功,否则测试失败。