|
1.TestCase
最简单的JUnit测试案例看起来像这样:
import junit.framework.TestCase;
public class Test extends TestCase {
public Test(String name) {
super(name);
}
public void testSimpleTest() {//测试方法,必须以test开头
// Test Code goes here
}
}
TestCase是一个指令对象。任何包含测试方法的类别都是TestCase的子类别。TestCase可以定义任意数量的testXXX()方法。
TestCase子类别可以包含多个testXXX()方法;可以使用setUp()及tesrDown()方法初始化及释放测试下的任何一般的对象,这个子类别形同测试的基础设备(fixture)。每一个测试在其本身基础设备的背景下执行,在每一个测试方法之前呼叫setUp()及之后呼叫tearDown()以确保没有副作用影响测试的执行。
撰写测试案例请依据下列的步骤:
定义一个TestCase的子类别。
覆写setUp()方法以初始化测试中的一个或多个对象。
覆写tearDown()方法以释放测试中的一个或多个对象。
定义一个或多个公开的testXXX()方法;这些方法检验这些测试中的对象并且评估期望的结果。
下面是一个最简单的例子:
import junit.framework.TestCase;
public class Test extends TestCase {
public Test(String name) {
super(name);
}
public void setUp() {}
public void tearDown(){}
public void testHelloWorld() {
// Test Code goes here
String hello = "Hello";
String world = "world";
assertEquals("Hello world", hello+world);
}
}
测试被执行的结果显示失败的情况如下:
Time: 0.01
There was 1 failure:
1) testHelloWorld(Test) "expected: but was:"
FAILURES!!!Tests run: 2, Failures: 1, Errors: 0
2 TestSuite
当写完单元测试testCase代码完成后,我们可以用Junit提供的TestSuite对象对测试单元进行组织。TestCase实例对象可以合成为TestSuite层级架构;在这个TestSuite层级架构中可以自动激活定义在TestCase实例对象中的所有testXXX()方法。一个TestSuite是其它多个测试的一个合成对象,其中包括TestCase实例对象及其它的TestSuite实例对象。这个由TestSuite代表的合成对象行为自动的执行所有测试以产出个别的通过或失败的状态。
TestSuite的基本结构如下:
package ×××;i
mport junit.framework.*;
public class AllTests extends TestCase {
public AllTests(String s) {
super(s);
}
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTestSuite(Test×××.class);//添加测试案例
suite.addTestSuite(Test×××.class);
suite.addTestSuite(Test×××.class);
return suite;
}
} |
|