Junit4学习笔记

一、 特点:
*
开源测试框架
*
提供注解来识别测试方法
*
提供断言来判断预期结果
*
JUnit 测试允许你编写代码更快,并能提高质量。
*
JUnit 优雅简洁。没那么复杂,花费时间较少。
*
JUnit 测试可以自动运行并且检查自身结果并提供即时反馈。所以也没有必要人工梳理测试结果的报告。
*
JUnit 测试可以被组织为测试套件,包含测试用例,甚至其他的测试套件。
*
JUnit 在一个条中显示进度。如果运行良好则是绿色;如果运行失败,则变成红色。

二、常用注解
*
@Test:将一个普通方法修饰成一个测试方法 ,@Test修饰的方法,不应该有参数
*
@BeforeClass: 会在所有的方法执行前被执行,static 方法 (全局只会执行一次,而且是第一个运行)
*
@AfterClass:会在所有的方法执行之后进行执行,static 方法 (全局只会执行一次,而且是最后一个运行)
*
@Before:会在每一个测试方法被运行前执行一次
*
@After:会在每一个测试方法运行后被执行一次
*
@Ignore:所修饰的测试方法会被测试运行器忽略
*
@RunWith:放在测试类之上,用来确定这个类怎么运行,也可以不标准,使用默认的运行器
*
Parameters:参数化注解

三、 测试套件
在实际项目中,随着项目进度的开展,单元测试类会越来越多,可是直到现在我们还只会一个一个的单独运行测试类,这在实际项目实践中肯定是不可行的。为了解决这个问题,JUnit 提供了一种批量运行测试类的方法,叫做测试套件。这样,每次需要验证系统功能正确性时,只执行一个或几个测试套件便可以了。测试套件的写法非常简单,我们需要遵循以下规则:

* 1.  创建一个空类作为测试套件的入口。

* 2.  使用注解 org.junit.runner.RunWith 和 org.junit.runners.Suite.SuiteClasses 修饰这个空类。

* 3.  将 org.junit.runners.Suite 作为参数传入注解 RunWith,以提示 JUnit 为此类使用套件运行器执行。

* 4.  将需要放入此测试套件的测试类组成数组作为注解 SuiteClasses 的参数。

* 5.  保证这个空类使用 public 修饰,而且存在公开的不带有任何参数的构造函数。

四、参数化测试
Junit 4 引入了一个新的功能参数化测试。参数化测试允许开发人员使用不同的值反复运行同一个测试。你将遵循 5 个步骤来创建参数化测试。

* 

@RunWith(Parameterized.class) 来注释 test 类。
*
创建一个由 @Parameters 注释的公共的静态方法,它返回一个对象的集合(数组)来作为测试数据集合。
*
创建一个公共的构造函数,它接受和一行测试数据相等同的东西。
*
为每一列测试数据创建一个实例变量。
*
用实例变量作为测试数据的来源来创建你的测试用例。

一旦每一行数据出现测试用例将被调用。让我们看看活动中的参数化测试