如何在 Delphi 2006 的 Midas/DataSnap 项目中设置 DUnit 测试

编辑

一个人如何将Dunit测试设置为TremoteDatamodule,Delphi 2006中的项目向导不适合TremoteDatamodule

有帮助吗?

解决方案

这个问题并不完全合理。单元测试在单独的项目中执行,而不是在DataSnap服务器中执行。通常,连接到数据库的测试是集成测试而不是单元测试。这是什么,你要测试的确切?如果它是TRemoteDataModule中的实用方法,你应该将它们作为类方法提取到一个单独的类中,并在那里测试它们。您不必实例化应用程序服务器来执行单元测试。

其他提示

对于上面的简洁回答感到抱歉,每当我在编辑帖子时按回车键时,iPad 都会发布帖子。

dUnit 旨在执行单元测试,而您要做的不是单元测试。

如果满足以下条件,则测试不是单元测试:

  • 它与数据库对话
  • 它通过网络进行通信
  • 它触及文件系统
  • 它不能与任何其他单元测试同时运行
  • 您必须对您的环境执行特殊操作(例如编辑配置文件)才能运行它。
  • 它不能孤立运行

如果您遵循 SOLID 原则(尤其是单一责任原则),那么使用 dUnit 来测试您的类(无需测试 Midas/DataSnap 相关逻辑)应该相当简单。实际上,您不需要测试 Midas/DataSnap 逻辑。

但是有一些方法可以对 Delphi 应用程序执行集成和行为测试。

就我个人而言,我不会使用 TestComplete,因为它不能与任何类型的 CI 服务器很好地集成,并且测试以专有的二进制格式存储(这使得合并差异或维护任何源代码控制系统中的更改都会出现问题)。

你可以尝试 规格, ,但我不确定乔迪·道金斯是否会继续维护它。

我已经用过 自动它 直接在某些项目上使用 BASIC 脚本语言,并在另一个项目上使用其 .NET 程序集来驱动使用 NUnit 和 C# 的 Delphi 应用程序。虽然并不完美,但 NUnit / C# 解决方案比我见过的用于执行功能/行为测试 Delphi 应用程序的任何解决方案都更加优雅。不过,设置它确实需要一些努力。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top