如何为Delphi DUnit中的单元测试提供数据?例如,在PHP中,您可以执行以下操作:
public function URLProvider() {
return [
["https://helloacm.com"],
["https://codingforspeed.com"]
];
}
/**
* @dataProvider URLProvider
*/
public function test_url($url) {
$data = file_get_contents("$this->API?url=$url");
$result = json_decode($data, true);
$this->assertEquals(true, $result['result']);
$this->assertEquals(200, $result['code']);
}
答案 0 :(得分:3)
使用Spring4D DUnit扩展,您可以编写类似的东西(查看单位release/1.2
的{{1}}文件夹中的Tests\Source
分支。)
Spring.Testing
您可以将名称传递给同一Testcase类中的方法,也可以指定另一个类 - 方法本身必须是公共静态类函数。然后,扩展将为传递的每个参数创建不同的测试用例。您可以查看Spring4D的Unittests以了解其他用例。
答案 1 :(得分:2)
在DUnit中,每个测试用例必须是没有参数的procedure
。因此,不存在通过custom attributes注入参数来测试方法的机制,就像你正在使用PHPUnit一样。
你应该看一下DUnitX而不是你可以定义这样的测试:
[TestCase('https://helloacm.com')]
[TestCase('https://codingforspeed.com']
procedure TestUrl(const Url: String);