如何在Delphi 2006中的Midas / DataSnap项目中设置DUnit Testing
编辑
如何将Dunit测试设置为TRemoteDataModule Delphi 2006中的项目向导不适用于TRemoteDataModule
答案 0 :(得分:4)
这个问题并不完全合理。单元测试在单独的项目中执行,而不是在DataSnap服务器中执行。通常,连接到数据库的测试是集成测试而不是单元测试。这是什么,你要测试的确切?如果它是TRemoteDataModule中的实用方法,你应该将它们作为类方法提取到一个单独的类中,并在那里测试它们。您不必实例化应用程序服务器来执行单元测试。
答案 1 :(得分:2)
对于上面的简洁回答,很抱歉,只要我在编辑帖子时点击返回,就会发布iPad。
dUnit旨在执行单元测试,而您尝试做的不是单元测试。
如果出现以下情况,则测试不是单元测试:
如果您遵循SOLID原则(特别是单一责任原则),使用dUnit测试您的类(不测试Midas / DataSnap相关逻辑)应该相当简单。实际上,您不需要测试Midas / DataSnap逻辑。
但是有一些方法可以对Delphi应用程序执行集成和行为测试。
就个人而言,我不会使用TestComplete,因为它不能与任何类型的CI服务器很好地集成,并且测试以专有的二进制格式存储(这使得合并差异或维持任何源控制系统中的更改都存在问题)。
你可以尝试dSpec,但我不确定Jody Dawkins是否会继续保留它。
我在某些项目中直接使用了AutoIt BASIC脚本语言,并且还使用其.NET程序集在另一个项目上使用NUnit和C#来驱动Delphi应用程序。虽然并不完美,但NUnit / C#解决方案比我在执行功能/行为测试Delphi应用程序时看到的更优雅。尽管如此,确实需要付出一些努力。