剖析概念
TestCase(测试用例)
当一个类继承 JUnit 的 TestCase 类,即成为一个测试类,而且,测试类中的方法必须以 test 开头,比如:testAdd() 等。
TestSuite(测试套件)
TestSuite 是一组测试,目的在于将相关的测试用例归入一组。当执行一个 Test Suite 时,就会执行组内所有的测试方法,这就避免了繁琐的测试步骤。当然,如果没有为 test case 写 test suite 的话,系统会默认为每个 test case 生成一个 test suite。
Assert(断言)
Assert 用于检查条件是否成立,当条件成立则 Assert 方法通过,否则会抛出异常。例如,Assert.assertEquals(3, result); 判断 result 是否跟期望的3想等,如果想等则通过,否则测试失败。
主要有如下几个断言方法:
assertTrue/False():判断一个条件是 true 还是 false。
fail():失败,可以有消息,也可以没有消息。
assertEquals():判断是否想等,可以指定输出错误信息。注意不同数据类型所使用的 assertEquals 方法参数有所不同。
assertNotNull/Null():判断一个对象是否为空。
assertSame/NotSame():判断两个对象是否指向同一个对象。
failNotSame/failNotEquals():当不指向同一个内存地址或者不相等的时候,输出错误信息。错误信息为指定的格式。
setUp
每次测试方法执行之前,都会执行 setUp 方法,此方法用于进行一些固定的准备工作,比如,实例化对象,打开网络连接等。
tearDown
每次测试方法执行之后,都会执行 tearDown 方法,此方法用于进行一些固定的善后工作,比如,关闭网络连接等。
结束语
JUnit 3 就介绍到这,可以看出,JUnit 3 还是很简单的,只不过在每次编写测试类时,都需要继承 TestCase 类,这就无形之中给测试类增加了一些牵绊。下一篇文章中,我们一起来讨论一下 JUnit 4 的一些新特性,以及是如何简化测试用例的。