第二章:JUnit测试套件:
在第一节中简单的介绍了JUnit的使用,但是每次运行测试类时,该测试类的所有方法全部都被测试一遍,如果想单独测试某个方法还是比较麻烦的。但是可以利用测试套件来解决这个问题。
下面我们先更改CalculateUtilTest向里面增加一个构造方法
代码解释:
1行:自定义构造方法,里面有一个String参数,在该方法中调用父类的构造方
法。
构造一个类来操作测试套件:
构造一个类来操作测试套件:
代码解释:
1行:静态方法,返回Test类对象。该方法主要是构造TestSuite类对象,然后向
1行:静态方法,返回Test类对象。该方法主要是构造TestSuite类对象,然后向
其中加入你想要测试的方法。
2行:构造TestSuite类对象
3行:向TestSuite对象中添加一个要测试的方法。
new CalculateUtilTest("testDivision")表示测试CalculateUtilTest类的
2行:构造TestSuite类对象
3行:向TestSuite对象中添加一个要测试的方法。
new CalculateUtilTest("testDivision")表示测试CalculateUtilTest类的
testDivision方法。
4行:运行该测试套件
上面的方法可以非常方便地添加自己所需要的方法,如果是用该方法,就要在编写测试方法时将其加入测试套件中。如果你觉得很麻烦,那么就使用下列一行代码一次测试一个类吧。
或者在suite方法中添加所要测试的类也可以
4行:运行该测试套件
上面的方法可以非常方便地添加自己所需要的方法,如果是用该方法,就要在编写测试方法时将其加入测试套件中。如果你觉得很麻烦,那么就使用下列一行代码一次测试一个类吧。
或者在suite方法中添加所要测试的类也可以
尽管上面的测试套件提供了你所需要的各种粒度测试方法(按照方法名,测试整个类),但是有个问题是,当我们面临一大堆测试代码时,很容易忘记将你的测试类加入到一个测试套件中去。一个好的解决方法是让java程序扫描你的classpath中的全部类,搜集所需要的测试类然后逐一执行。这样做的好处就是不会有测试被遗漏,但缺点是某些测试,你并不希望每次都运行它们。具体做法如下:先编写收集测试类的功能,并将全部测试类装入测试套件。代码如下
注:注释都比较详细,在这里就不多解释了。
然后编写测试套件类:
运行该测试套件,你会发现在你的classpath下的所有测试类都会被执行。只不过是文本形式显示结果。
然后编写测试套件类:
运行该测试套件,你会发现在你的classpath下的所有测试类都会被执行。只不过是文本形式显示结果。
转自:http://dendrobium.iteye.com/blog/122611