您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > junit
JUNIT源码探秘系列(上)
作者:网络转载 发布时间:[ 2013/4/16 14:10:56 ] 推荐标签:

1.1      初始化加载用例集阶段

在初始化加载阶段,程序解析主要有一个重要分支,一个是测试代码中是否有”suite”关键字,两外在测试代码中是否含有”RepeatedTest”也要注意。

public static Test suite() {

    TestSuite suite = new TestSuite();
suite.addTestSuite(CalculatorTest.class);

return suite;}

我们先看看代码中含有”suite”的加载过程,下图所示(根据代码绘制):

步骤(测试代码中含有“suite”):

1.         Main方法先new TestResult,然后待用start方法;start方法中主要做了两件事情,初始化解析加载测试集,即getTest;另外一件是执行调度测试集并记录测试结果,即doRun

2.         在start方法中调用BaseTestRunner中的getTest(),在getTest中,通过反射检查测试代码中是否含有“suite”关键字,如果没有则按上图的流程图执行调用,创建一个TestSuite

3.         如果有则如上图所示执行,通过反射调用解析测试方法

(Test)suiteMethod.invoke(null, new Class[0]);

4.         在测试方法中调用并初始化TestSuite

5.         将一个个testSuite对象加载到测试集中

6.         通过反射的方法,从测试代码中解析出所有测试方法,然后筛选出test开头,且参数为空,类型为viod的方法,

7.         找到待测试的方法(6中筛选过滤),然后通过反射后newInstance一个个测试方法,转化成Junit的测试用例(testcase)

8.         将Junit转化的测试用例加载fTest测试集中,待执行

另外:注意一点,当测试代码中含有构造函数,时,在上图中第7步中,会判断是否含有构造函数,如果有增加两步,则按照下图所示执行

(1)       通过反射找到构造函数,

(2)       通过构造函数初始化构造对象,即tecase

上面说明了下在测试代码中含有“suite”的情况,下面接着继续看看测试代码中不含有“suite”时,如下图

 

上一页12345下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd