1. 测试类的私有方法有两种方式:
a)修改方法的访问修饰符,将private修改为default或者public(不推荐使用这中方式)
b)使用反射在测试类中调用目标类的私有方法(推荐)
被测试类:
package com.ebuair.junit;
public class PrivateMethod {
/*
* 被测试类的私有方法
*/
private int add(int x,int y){
return x + y;
}
}
使用反射测试被测试类的私有方法:
package com.ebuair.junit;
import java.lang.reflect.Method;
import junit.framework.Assert;
import junit.framework.TestCase;
/**
* 使用反射测试某个类的私有方法
* @author Ebuair
*
*/
public class TestPrivatMethod extends TestCase {
public void testAdd(){
try {
PrivateMethod privateMethod = new PrivateMethod();
Class<PrivateMethod> privateMethodClass = PrivateMethod.class;
Method method = privateMethodClass.getDeclaredMethod("add",
new Class[]{Integer.TYPE,Integer.TYPE});
method.setAccessible(true);
Object result = method.invoke(privateMethod, new Object[]{2,3});
Assert.assertEquals(5, result);
} catch (Exception e) {
Assert.fail();
}
}
}
2.TestSuite(测试套件):可以将多个测试组合到一起,同时执行多个测试
package com.ebuair.junit;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
public class TestAll extends TestCase {
public static Test suite(){
TestSuite suite = new TestSuite();
suite.addTestSuite(TestCaculator.class);
suite.addTestSuite(TestDeleteAllFile.class);
suite.addTestSuite(TestMaxValue.class);
return suite;
}
}