Java单元测试技术(9)

本文深入探讨了TestSuite如何通过JAVA反射技术生成测试用例对象,具体阐述了构造方法和成员方法的实现逻辑,包括筛选并创建TestCase类的实例,确保每个满足特定条件的测试方法都能被正确调用。
protected void runTest() throws Throwable {
......
Method runMethod= null;
try {
runMethod= getClass().getMethod(fName, null);// fName是测试方法名
} catch (NoSuchMethodException e) {
......
}
……
try {
runMethod.invoke(this, new Class[0]);
}
......
}
 类TestSuite
类TestSuite不需要我们再子类化了,它维护了对一组测试用例对象的引用(包括它所包含的嵌套TestSuite对象),它也实现了Test的接口,run方法的实现就是递归调用它所引用的对象的run方法,下面我们谈一下给定一个TestCase子类(指类定义),TestSuite是如何针对其中定义的每个测试方法生成对应的TestCase对象的。以下是TestSuite的两个相关方法,一个是构造方法(给定用例类,生成该测试套下的用例对象)和成员方法(给定用例类,生成子测试套下的用例对象)。
public TestSuite(final Class theClass){ }
public void addTestSuite(Class testClass) { }
这两个方法的实现相似,基本实现思路是根据JAVA的反射技术,找出用例定义的满足以下条件的成员方法(测试方法)
条件1:当然是公共方法
条件2:方法名以“test”开头
条件3:方法无参数
条件4:方法的返回值类型为void
对应每一个这样的方法生成该用例类的一个对象,并将用例名初始化为该方法名。测试套下的用例对象就是这样生成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值