Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi数据模块的单元测试_Delphi_Unit Testing_Dunit_Datamodule - Fatal编程技术网

Delphi数据模块的单元测试

Delphi数据模块的单元测试,delphi,unit-testing,dunit,datamodule,Delphi,Unit Testing,Dunit,Datamodule,如果所有业务逻辑都存在于数据模块(TSQLDataSets和TDataSetProviders)中,您将如何重构代码以使应用程序更适合进行单元测试?之后,我写道。一些基本技巧: 您的数据模块不应该有任何对表单或任何其他UI组件的引用 将TDataSources放在窗体上,而不是放在数据模块中 确保没有任何需要用户输入DataModules代码的确认和操作提示 您不应该使用任何全局变量 希望这有帮助。对于DUnit测试的自动构建,您可以使用OpenCTF,它能够在测试运行时自动查找所有组件并创

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

之后,我写道。

一些基本技巧:

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

希望这有帮助。

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


Hm,如果我没有将任何数据源放入我的数据模块,我如何连接多个表/查询,例如:datasource2.dataset=table2;表1.datasource=datasource2;我不使用这个特性,但我想在这种情况下,您必须将数据源放在DM中,但只是为了连接数据集。看看是否可以使用其他数据源将数据集连接到可视化组件。我不同意#2 item.t数据源可以有两个用途:绑定UI控件(然后它应该在窗体或框架上)、绑定主-细节关系(然后它应该在数据模块上)