测试用例&测试套件
举个栗子:
|
MyStack类:
-
public class MyStatck {
-
-
private String[] elements;
-
private int nextIndex;
-
-
public MyStatck() {
-
elements = new String[100];
-
nextIndex = 0;
-
}
-
-
public void push(String element) throws Exception {
-
if (nextIndex >= 100) {
-
throw new Exception("数组越界异常!");
-
}
-
elements[nextIndex++] = element;
-
}
-
-
public String pop() throws Exception {
-
if (nextIndex <= 0) {
-
throw new Exception("数组越界异常!");
-
}
-
return elements[--nextIndex];
-
}
-
-
public String top() throws Exception {
-
if (nextIndex <= 0) {
-
throw new Exception("数组越界异常!");
-
}
-
return elements[nextIndex - 1];
-
}
-
-
}
对push方法编写测试:
-
public void testPush(){
-
MyStatck myStatck = new MyStatck();
-
//测试用例中对方法抛出的异常进行try-catch处理。
-
try {
-
myStatck.push("Hello World!");
-
} catch (Exception e) {
-
Assert.fail("push方法异常,测试失败。");
-
}
-
String result = null;
-
try {
-
result = myStatck.pop();
-
} catch (Exception e) {
-
e.printStackTrace();
-
}
-
//验证断言压入的字符串是否为"Hello World!"。
-
Assert.assertEquals("Hello World!", result);
-
}
虽然testPush测试用例中调用了pop方法,但对pop方法仍要创建新的测试用例:
测试中是可以使用其他方法,不然就没法进行测试了
-
public void testPop(){
-
-
MyStatck myStatck = new MyStatck();
-
try {
-
myStatck.push("Hello World!");
-
} catch (Exception e) {
-
e.printStackTrace();
-
}
-
String result = null;
-
try {
-
result = myStatck.pop();
-
} catch (Exception e) {
-
Assert.fail("pop方法异常,测试失败。");
-
}
-
//验证断言弹出的字符串是否为"Hello World!"。
-
Assert.assertEquals("Hello World!", result);
-
-
}
两个测试方法大致相同,但是侧重点不同。侧重对测试方法的断言判断。
每个test case只做一件事情,只测试一个方面。
随着项目的开发,类越来越多,测试也越来越多。单个测试的机械动作也会拖慢速度。那么就需要更简便的方法,只要点一下,就可以测试全部的测试用例——这种方法就是使用测试套件。
测试套件(TestSuite):可以将多个测试组合到一起,同时执行多个测试
创建测试套件约定:
-
在test源目录内创建测试类;
-
创建public static Test suite(){}方法。
贴代码
-
public class TestAll extends TestCase {
-
-
public static Test suite(){
-
-
TestSuite suite = new TestSuite();
-
suite.addTestSuite(CalcTest.class);
-
suite.addTestSuite(DeleteAllTest.class);
-
suite.addTestSuite(MyStatckTest.class);
-
-
return suite;
-
-
}
-
}
运行结果如图: