
Junit4单元测试规范与实践

JUnit4 测试指南
JUnit4 是一个流行的 Java 单元测试框架,用于编写和执行单元测试。下面是 JUnit4 测试指南,包括测试用例命名规则、测试类组织结构、测试方法编写、测试数据准备、实体层测试、DAO 层测试、Service 层测试和 Struts 层测试等方面的内容。
**测试用例命名规则**
测试用例的命名规则为:类名 + Test。例如,一个名为 `Calculator` 的类,测试用例的名称应该是 `CalculatorTest`。JUnit4 支持非这样的命名方式,但是为了统一管理,还是采用这样的方式命名。
**测试类组织结构**
建立一个和 `src` 平行的 `test` 包,所有测试用例都放在相应的包内,便于统一管理,合成测试套件。同一个包的测试用例,合成一个测试套件。整个工程的测试套件,合成一个统一的测试套件。
**测试方法编写**
测试方法都是以 `test` 开头的方法(例如 `testAdd`),JUnit 按照在测试用例中的顺序执行。测试方法可以和被测试的方法一一对应,测试方法也可以包含多个被测试的方法。测试方法中,使用断言(`assertXXX` 和 `fail`)来进行测试结果判断,也可以辅以文字打印说明,如果测试程序抛出异常,则显示为错误,如果断言失败,则显示故障。
**测试数据准备**
为了防止数据库的更改对测试结果的影响,测试数据由统一的 SQL 脚本来创建,测试前执行一下脚本创建数据。也可以使用数据回滚的方式进行与数据相关的测试。
**实体层测试**
由于本次项目的 Entity 模型由之前的贫血模型改为到充血模型,所以对于 Entity 自身的除 set/get 以外的方法都应该进行单元测试。
**DAO 层测试**
每一个 DAO 类都必须编写测试用例,对 DAO 的每一个公开方法进行测试,测试用例必须使用有代表性的测试代码,覆盖的所有可能的输入和输出情况,包括创建、更改、删除对象以及输入错误数据等测试。
**Service 层测试**
Service 层的测试必须测试 Service 对象是否满足功能要求,事务完整性等功能。
**Struts 层和浏览器层测试**
待定…
**Eclipse 中 JUnit 的用法**
Eclipse 内置了 JUnit4 的支持。下面举一个简单的例子说明 Eclipse 中 JUnit 的用法:
我们假设我们要写一个整数除法的类,并且给他写测试用例:
```java
public class Calculator {
public int divide(int a, int b) {
return a / b;
}
}
public class CalculatorTest {
@Test
public void testDivide() {
Calculator calculator = new Calculator();
assertEquals(2, calculator.divide(4, 2));
assertEquals(0, calculator.divide(0, 10));
}
}
```
在上面的例子中,我们定义了一个 `Calculator` 类,具有一个 `divide` 方法,然后我们编写了一个 `CalculatorTest` 类,使用 `@Test` 注解标记测试方法,并使用 `assertEquals` 断言来验证测试结果。
相关推荐







