Delphi 是否有任何等效的 DocTest。我使用 DUnit,但我喜欢 Python DocTest 的想法。我在这里看到了一些答案,但我认为,对于简单的功能,像 DocTest 这样的可能没问题。我的目标是在编写函数时在注释标题中定义我的测试。像 :
function Plus(i1, i2 : integer) : integer;
//>>> Check( Plus(1, 3) = 4)
begin
result := i1 + i2;
end;
这个想法是您可以使用“控制台”将一些结果输出到测试代码,然后将输出文本内容与预期值进行比较。
例如,看看伟大的 DWSScript 开源项目提供的回归测试。您会发现一些 .pas 文件和一些相关的 .txt 文件。
例如 abs.pas:
var vf = 1.5;
var vi = 2;
var i : Integer := Abs(-vi);
PrintLn(i);
PrintLn(Abs(vi));
var f : Float := Abs(-vf);
PrintLn(f);
PrintLn(Abs(vf));
以及对应的abs.txt内容:
2
2
1.5
1.5
AFAIK 目前还没有现有的解决方案集成到 Delphi 世界中。
在注释中编写测试将缺少 IDE 自动完成功能,并且在某种程度上破坏了对象 pascal 设计。使用 DWS 会很容易,但需要调用命令行 Delphi 编译器。老实说,我看不出拥有自己的一组专门用于测试的单元有什么问题。带有固定和随机值的循环的一小段代码for..to
将比一组固定参数具有更好的测试覆盖率。