1.如何测试类的私有方法:
可以采用以下两种方式:
(1)修改方的访问修饰符,把private修改为default或者public,但是不推荐这种方式。
(2)使用反射,在测试类中调用目标类的私有方法。
示例如下:
目标类:
public class Calculator {
private int sub(int a,int b){
return a - b;
}
}
测试类如下:
public class CalculatorTest extends TestCase {
public void testSub(){
try {
Calculator cal = new Calculator();
Class<Calculator2> clazz = Calculator.class;
Method method=clazz.getDeclaredMethod("sub", new Class[]{Integer.TYPE,Integer.TYPE});
method.setAccessible(true);
Object result=method.invoke(cal, new Object[]{4,3});
Assert.assertEquals(1, result);
} catch (Exception e) {
Assert.fail();
}
}
}
2.TestSuite(测试套件):可以将多个测试组合到一起,同时执行多个测试用例。
public class TestAll extends TestCase {
public static Test suite(){
TestSuite suite = new TestSuite();
suite.addTestSuite(StudentTest.class);
suite.addTestSuite(PersonTest.class);
suite.addTestSuite(StudentTest.class);
return suite;
}
}
void addTestSuite(java.lang.Class testClass)
Adds the tests from the given class to the suite
说明:
(1)该方法是固定的,public static Test suite();
(2)首先创建测试套件
(3)然后添加测试套件,参数是【测试类.class】。