DUnit 函数没返回值怎么测试呢?

解决方案 »

  1.   

    DUnit 通过创建待测对象,然后调用它的方法并通过比对来验证待测对象实现方法的正确性。但是待测对象往往有大量的私有的函数来帮助对象提供服务,因为它们的私有性,我们不能直接用DUnit来测,必须另想办法。我们可以用编译开关来为需要测试的私有函数另作一个Public的函数,这个函数直接传递所有的参数给对应的私有函数,直接返回私有函数的返回值。而这个开关只在测试工程中带开,在正常的工程中是关闭的。应该避免直接测试私有函数,尽量通过测试它所提供服务的函数来间接地测
      

  2.   

    请参看通用的单元测试理论。界面测试目前是难题,如果你能把界面逻辑再进行拆分的话,则可能对这部分逻辑进行测试。请参看MVP模式。
      

  3.   

    解决方法是有的,但是需要你自己设计。DUNIT的方法只是声明一个测试项,但是测试方式同样是可以进行抽象的。不要固化思维,Testxxxx方法里就一定要直接写测试逻辑,你可以抽象测试类,然后通过这些方法来调用合适的测试类,就能满足你的需要了(测试类爱怎么写就怎么写)
      

  4.   

    上文提到的“测试类”,不是指TestSuite本身,是指另外一个自己抽象测试逻辑的类。说明一下。
      

  5.   

    http://www.microsoft.com/china/msdn/library/architecture/architecture/architecturetopic/MVP.mspx?mfr=true不过DELPHI下不好实现,可以先了解下思想吧。