由此也衍生了不少更强大的测试框架,比如可以得出执行时间指标,内存指标,以及web测试和多线程测试,使之扩展测试的深度和广度。这其中,人工干预的环节基本上在前期,也就是写test case的环节上,比如要构造最初输入参数,编写测试逻辑流程,如果方法之间本身耦合度较高,就需要比较复杂的测试逻辑流程,这也就是说,增加了前期的工作量,但也极大降低了后期的时间和工作量,总体而言还是极大提高了测试的效率。
但如果测试的前期能够降下来的话,这不是更好吗?这也是我当时的一个最初想法。
举个具体的例子阐述一下想法:
比如
| @ValidateIntValue(min=25,max=35) private String age; |
从上面这个age变量,我们可以得出age的最小值25,最大值35,这是它的规则,就是说,如果在程序测试中,如果出现age不符合这个范围,就必须抛出异常,提示出错,这个也是一个朋友上面说的校验。但另一方面,这也给我们提供了一个test case输入参数的思路,这就是如果我们遇到以age为输入参数的话,我们可以自动生成3个参数来执行三个case,2个边缘case,25,35,还有一个在这个随机值范围里面。当然我们可以修改为:
| @ValidateIntValue(min=25,max=35,default=28) private String age; |
这取决于我们的偏好。
由于这些meta信息不只可以作用于方法里面,也可以作用在类里面,我们也可以针对类作一些描述,这样我们就可以对类本身也可以作一些特定的描述。
一般来说,对复杂的类变量,populate方法必须提供能够实现递归,即填充父类的信息以及自身内部的变量信息,一直深入到最小的不可分解的原型变量,因为我们一般面对的都是一些比较复杂的类。

