如何使用JUnit写测试?
最简单的范例如下
创建一个TestCase的子类:
package junitfaq;import javautil*;import junitframework*;public class SimpleTest extends TestCase {public SimpleTest(String name) {super(name);}
写一个测试方法断言期望的结果
public void testEmptyCollection() {Collection collection = new ArrayList();assertTrue(collectionisEmpty());}
注意JUnit推荐的做法是以test作为待测试的方法的开头这样这些方法可以被自动找到并被测试
写一个suite()方法它会使用反射动态的创建一个包含所有的testXxxx方法的测试套件
public static Test suite() {return new TestSuite(SimpleTestclass);}
写一个main()方法以文本运行器的方式方便的运行测试
public static void main(String args[]) {junittextuiTestRunnerrun(suite());}}
运行测试
以文本方式运行
java junitfaqSimpleTest
通过的测试结果是
Time:
OK ( tests)
Time上的小点表示测试个数如果测试通过则显示OK否则在小点的后边标上F表示该测试失败
每次的测试结果都应该是OK的这样才能说明测试是成功的如果不成功就要马上根据提示信息进行修正了
如果JUnit报告了测试没有成功它会区分失败(failures)和错误(errors)失败是你的代码中的assert方法失败引起的而错误则是代码异常引起的例如
ArrayIndexOutOfBoundsException
以图形方式运行
java junitswinguiTestRunner junitfaqSimpleTest
通过的测试结果在图形界面的绿色条部分
以上是最简单的测试样例在实际的测试中我们测试某个类的功能是常常需要执行一些共同的操作完成以后需要销毁所占用的资源(例如网络连接数据库连接关闭打开的文件等)TestCase类给我们提供了setUp方法和tearDown方法setUp方法的内容在测试你编写的TestCase子类的每个testXxxx方法之前都会运行而tearDown方法的内容在每个testXxxx方法结束以后都会执行这个既共享了初始化代码又消除了各个测试代码之间可能产生的相互影响