如何开始单元测试新旧代码?

Rol*_*son 18 delphi unit-testing dunit

我承认我几乎没有单元测试经验.我刚才尝试使用DUnit,但放弃了,因为我的应用程序中的类之间存在很多依赖关系.它是一个相当大的(大约150万个源代码行)Delphi应用程序,我们是一个维护它的团队.

现在的测试是由一个人在发布之前使用它并报告错误.我还在TestComplete 6中设置了一些GUI测试,但由于应用程序的更改,它经常失败.

Bold for Delphi用作数据库的持久性框架.我们都同意单元测试是要走的路,我们计划在DotNet中编写一个新的应用程序,ECO作为持久性框架.

我只是不知道从哪里开始进行单元测试...任何好书,网址,最佳实践等?

Sam*_*ijo 13

好吧,单元测试的挑战不是测试本身,而是编写可测试的代码.如果编写的代码没有考虑测试,那么你可能会非常困难.

无论如何,如果你可以重构,请重构以使其可测试.尽可能不要将对象创建与逻辑混合(我不知道delphi,但可能有一些依赖注入框架来帮助实现).

这个博客有很多关于测试的好的见解.例如,查看这篇文章(我的第一个建议是基于它).

至于建议,首先尝试测试代码的叶节点,那些不依赖于其他类的类.它们应该更容易测试,因为它们不需要模拟.


b.r*_*oth 8

编写遗留代码的单元测试通常需要大量的重构.涵盖这一点的优秀书籍是Michael Feather的" 与遗产代码有效合作 "

另外一个建议是:使用单元测试覆盖率工具来指示您在此工作中的进度.我不确定Delphi代码的良好覆盖工具是什么.我想这将是一个不同的问题/主题.

有效地使用遗留代码

  • 羽毛的书在我的书架上,在手臂的范围内.关于它的一个警告:Feathers对他认为合适的单元测试非常严格,这可能会吓跑单元测试初学者.不要让那吓到你!除此之外,一本好书! (3认同)