【问题标题】:Unit-testing Delphi data modules单元测试 Delphi 数据模块
【发布时间】:2009-01-23 13:50:39
【问题描述】:

如果所有业务逻辑都存在于数据模块(TSQLDataSets 和 TDataSetProviders)中,您将如何重构代码以使应用程序更适合单元测试?

【问题讨论】:

    标签: delphi unit-testing dunit datamodule


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      一些基本技巧:

      • 您的 DataModules 不应有任何对表单或任何其他 UI 组件的引用
      • 将 TDataSource 放在表单上,​​而不是放在 DataModules 中。
      • 确保没有任何需要用户在 DataModules 代码上输入的确认和操作提示。
      • 您不应使用任何全局变量。

      希望这会有所帮助。

      【讨论】:

      • 嗯,如果我没有将任何数据源放入我的数据模块中,我如何连接多个表/查询,例如:datasource2.dataset=table2; table1.datasource = datasource2;
      • 我不使用此功能,但我想在这种情况下您必须将数据源放入 DM 中,而只是为了连接数据集。看看您是否可以使用另一个数据源将您的数据集连接到可视化组件。
      • 我只是不同意#2项。
      • TDataSource 可以有 2 个用途:绑定 UI 控件(然后它应该放在窗体或框架上),绑定主从关系(然后它应该放在数据模块上)
      【解决方案3】:

      要为 DUnit 自动构建测试,您可以使用 OpenCTF,它能够在测试运行时自动查找所有组件并创建测试用例。示例测试包括一些基本的数据访问层测试。

      http://sourceforge.net/projects/openctf/

      http://cc.embarcadero.com/Item/24136

      alt text http://www.mikejustin.com/images/OpenCTF.gif

      【讨论】:

        猜你喜欢
        • 2011-06-25
        • 2011-11-16
        • 2014-05-10
        • 1970-01-01
        • 1970-01-01
        • 2013-02-21
        • 2018-04-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多