我承认我有单元测试的几乎没有经验。 我做了一个尝试DUNIT前一阵子,但放弃了,因为在我的应用类之间如此多的依赖关系。 这是一个相当大(约150万源行)程序,我们是保持它的团队。
对于现在的测试是由前释放和bug报告用它一个人完成。 我还成立了TestComplete 6一些GUI的测试,但它往往失败,因为在应用程序的变化。
大胆德尔福作为对数据库持久性框架。 我们都同意,单元测试是要走的路,我们计划写DOTNET的与ECO作为持久性框架的新的应用程序。
我只是不知道从哪里开始与单元测试...任何好的书籍,网址,最佳实践等?
那么,在单元测试面临的挑战是不是测试本身,而是在写测试代码 。 如果代码被写入没有考虑过测试,那么你可能有一个很艰难的时期。
无论如何,如果你可以重构,重构做使它测试。 不要对象的创建与逻辑混合只要有可能(我不知道德尔福,但可能有一些依赖注入框架在此帮助)。
该博客有很多关于测试良好的洞察力。 检查这篇文章的实例(我的第一个建议是基于它)。
作为一个建议,可以尝试测试代码的叶节点首先,那些不依赖于其他类。 他们应该更容易测试,因为它们不需要嘲笑。
写作遗留代码单元测试通常需要大量的重构。 覆盖这本优秀著作是迈克尔羽毛的“ 修改代码的工作 ”
一个额外的建议:使用单元测试覆盖率工具指明这项工作的进度。 我不知道什么好报道的工具Delphi代码是虽然。 我想这将是一个不同的问题/话题。
修改代码的工作
一个比较流行的方法是修改代码编写单元测试。 所有新代码获取单元测试,以及对任何代码修改你先写它的测试,验证,修改,重新验证它,然后写/修复,你需要因您的修改任何测试。
一个具有良好单元测试覆盖率的一大优势是能够以验证您所做的更改不会无意中破坏别的东西。 这种方法允许你这样做,同时注重您的燃眉之急你的努力。
我一直使用的另一种方法是通过合作社来发展我的单元测试:)
当你与遗留代码工作,模拟objetcs是真正有用的,以创建单元测试。
看看这个问题关于Delphi和嘲笑: 你最喜欢的德尔福嘲讽库?
对于.NET单元测试阅读:“ 单元测试的艺术:在.NET示例 ”
关于最佳pratices:
你说的是正确的:有时候,你很难刚过,或只是;-)类实施前写的,因为类之间的扶养的单元测试......所以编写单元测试。 与此类似,如果你有一些困难,编写测试,也许它意味着你有一个设计问题!