浆糊
2002-09-02 18:59

测试是面向接口的,而不是流程。我们要测试的是我们的公开接口的准确性,如果你的流程控制有专门的类来做,那么当然也可以测试这个控制类,只要针对它的public interface

banq
2002-09-03 09:42

问题是这个控制类是由用户来控制的。这种情况在复杂系统里很多,特别是一些创建过程,一个用户在创建过程中,会根据自己的需要选择不同的参数,导致到下一步的结果都不一样。

浆糊
2002-09-03 10:12

Junit,cactus都是单元测试工具,针对的测试对象是public interface,保证单元功能的健壮性。如果你的类这些public interface都测试通过的话,当然数据是需要创建的,那么他们之间的协作只是参数是否正确的问题了。

banq
2002-09-03 11:21

每个单元正确了,但是当这些单元协同工作了,还会不正确,有这样的情况,这是因为你在单元测试不可能穷举所有的数据去测试单元,而一个单元的输出的结果可能是随机的,这些结果一旦作为下个单元的输入参数,就可能导致下个单元运行出错。

这种情况一旦发生,我们会很郁闷,看来cactus是帮不了忙,还得我在现场运行时加入system.out一个个数据跟踪。

浆糊
2002-09-03 16:25

为什么结果是随机的?