- JUnit 的概念及用途
JUnit 的设计精简,易学易用,但是功能却非常强大,这归因于它内部完善的代码结构。 Erich Gamma 是著名的 GOF 之一,因此 JUnit 中深深渗透了扩展性优良的设计模式思想。 JUnit 提供的 API 既可以让您写出测试结果明确的可重用单元测试用例,也提供了单元测试用例成批运行的功能。在已经实现的框架中,用户可以选择三种方式来显示测试结果,并且显示的方式本身也是可扩展的。看过junit的源码后,这里我就自己来做一个整理。这里以junit38为例,junit4X无非是将junit38中的一些约定换成了注解解析,这个后面我也会整理到。
- JUnit 基本原理
测试用例组成:
操作步骤:
将 B 通过命令行方式或图形界面选择方式传递给 R,R 自动运行测试,并显示结果。
我们先来看下junit源码中的目录结构和几个重要的类:
OK,我选中的几个类就是junit的核心类,我们依次来看下:
1,TestRunner:测试的执行器,每个测试用例的执行都是由这个类来运行的。该类有一个父类BaseTestRunner,这个父类实现了测试监听接口TestListener。TestListener代码如下:
package org.linkinpark.commons.framework;
/**
* @创建作者: LinkinPark
* @创建时间: 2016年1月21日
* @功能描述: 监听器接口,所有的测试执行器都要实现该接口
*/
public interface TestListener
{
/**
* @创建时间: 2016年1月21日
* @相关参数: @param testt
* @相关参数: @param e
* @功能描述: 添加错误
*/
public void addError(Test test, Throwable e);
/**
* @创建时间: 2016年1月21日
* @相关参数: @para