gpt4 book ai didi

unit-testing - DUnit Delphi 中的 dataProvider?

转载 作者:行者123 更新时间:2023-12-03 18:20:51 26 4
gpt4 key购买 nike

如何为 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']);
}

最佳答案

使用 Spring4D DUnit 扩展,您可以编写类似的内容(查看单元 Tests\Source 文件夹中的 release/1.2 分支 Spring.Testing )。

program Tests;

uses
Spring.Testing,
TestInsight.DUnit;

type
TUrlTests = class(TTestCase)
public
class function UrlProvider: TArray<string>; static;
published
[TestCaseSource('UrlProvider')]
procedure TestUrl(const url: string);
end;

{ TUrlTests }

procedure TUrlTests.TestUrl(const url: string);
begin
// do whatever
end;

class function TUrlTests.UrlProvider: TArray<string>;
begin
Result := ['https://helloacm.com', 'https://codingforspeed.com'];
end;

begin
TUrlTests.Register;
RunRegisteredTests;
end.

您可以将名称传递给同一 Testcase 类中的方法,也可以指定另一个类 - 方法本身必须是公共(public)静态类函数。然后,扩展将为传递的每个参数创建不同的测试用例。您可以检查 Spring4D 的单元测试以了解其他用例。

关于unit-testing - DUnit Delphi 中的 dataProvider?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42070576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com