Delphi中的单元测试-我们如何做?
我想知道这里的少数Delphi用户如何进行单元测试(如果有)?有什么可以与我们发现的IDE很好地集成在一起的东西吗?如果没有,我们使用的是什么工具,我们是否知道示例微型项目,这些示例演示了它们的全部工作原理?
更新:
我忘了提到我正在使用BDS 2006 Pro,尽管我偶尔会进入Delphi 7,当然其他人可能正在使用其他版本。
解决方案
回答
DUnit是与win32 Delphi一起使用的xUnit类型的单元测试框架。由于Delphi 2005 DUnit已集成到IDE中的一个固定点。可在此处找到用于Delphi IDE的其他DUnit集成工具。 DUnit随附带有示例的文档。
回答
我们试图在Delphi 5中使用DUnit,但效果不佳。特别是,如果我们要实现COM接口,我们会发现许多依赖项可以设置所有测试基础结构。我不知道测试支持是否在较新版本中有所改进。
回答
通常,我创建一个单元测试项目(文件->新建->其他->单元测试->测试项目)。它包含了我需要的东西,到目前为止已经足够好了。
我使用的是delphi 2007,所以我真的不知道2006年是否可以使用它。
回答
我们使用DUnit对所有逻辑代码进行单元测试,并使用AQTime中包含的代码覆盖率分析器来检查通过代码的所有路径是否均由测试执行。
回答
可从http://members.optusnet.com.au/~mcnabp/获得DUnit2.
与原始dunit相比,对DUnit2的修改更加规律。它也可以在Delphi 2009上使用。
尝试:http://sourceforge.net/projects/dunit2/随着原作者彼得·麦克纳布(Peter McNab)几年前去世,它动了起来。 dunit邮件列表上仍有一些活动。
回答
DUnit有一些添加组件,也许值得在SO上添加一个新条目。我现在可以列出的两个是
- FastMM4集成:单元测试将自动检测内存泄漏(和其他情况),可与DUnit 9.3及更高版本一起使用
- OpenCTF是基于DUnit的"组件测试框架",它为项目的表单,框架和数据模块中的所有组件动态创建测试,并使用自定义规则进行测试(开源)
替代文字http://www.mikejustin.com/images/OpenCTF.gif
回答
我们有两种方法,首先是运行Dunit测试,向开发人员购买,以确保刚刚更改的代码仍然可以像以前一样工作。另一种方法是使用CruiseControl.NET生成可执行文件,然后在每次进行更改时运行dunit测试,以确保更改不会引起意外后果。
我们的大多数代码库没有测试,因此自动测试是不断开发的情况,目的是确保我们的应用程序按我们认为的方式工作。