使用JUnit创建TestCase

  在学会了对单个方法、类、接口等进行测试后,接着看看这么创建Test Suite,先看一个例子:
  public static Test Suite(){
     TestSuite suite = new TestSuite();
     suite.addTest(new MoneyTest("testEquals"));
     suite.addTest(new MoneyTest("testSimpleAdd"));
     return suite;
     }

看这个例子创建的Test Suite由两个测试组成:testEquals() 和testSimpleAdd().这种为“手动创建Test Suite”,因为没添加一个测试方法,就必须手动的更新Test Suite的测试列表。这种方式在JUnit2.0之前,是唯一创建Test Suite。但是现在就不是唯一的途径了。
 
  现在的框架提供了为Test Case类的测试方法自动创建Test Suite的功能。只要掌握几个简单的原则,JUnit就会自动发现你的测试,并执行它们:
1. 你的测试方法必须是instance级别的,既不能有参数,也不能有返回值。也就是说,你必须将这些测试方法声明为public void testMehtodName()的形式。这是JUnit中创建测试方法的统一要求,不论你自己创建Test Suite,还是让框架自动完成,都必须这样做。

2. 你的测试方法的名字必须以"test(没有引号)"开头,几个字母必须全是小写。

除此之外,如何声明你的测试方法没有限制。不过测试代码最好遵循如下的规律:
首先创建对象,然后调用某个方法,最后验证结果。

下面看看各个方法功能(JUnit 如何创建默认的Test Suite)
Test Suite 方法 功能
Constructor TestSuite(Class) 验证是否有public的构造函数。验证类本身是否是public的。调用addTestMethod()方法添加类中声明的每个测试方法。将这个类的超类中声明测试提取到当前的类层次。如果类中没有测试,就发布一个warning。
addTestMethod() 调用isPublicTestMethod()方法验证这个方法是否测试方法。如果测试方法命名正确但不是public类型的,就发布一个warning。如果该方法是有效测试方法,就为该方法创建测试对象,并把它添加到Test Suite.
isPublicTestMethod() 调用isTestMethod()方法验证一个方法是否测试方法。验证一个测试方法是否是public的,如果一个方法是public的并且是测试方法,就返回真。
isTestMethod() 验证一个方法是否没有参数,没有返回值,并且名字以“test”开始


JUnit自动创建的Test Suite的方式,促使你编写独立的测试,这也是一个普遍接受哦好的测试编写习惯。你不要指望你的测试依照特定的次序进行,也不要让一个测试的失败影响Test Suite中其他测试的结果。

猜你喜欢

转载自jiangduxi.iteye.com/blog/559429