4

Delphi の DocTest に相当するものはありますか。私は DUnit を使用していますが、Python DocTest のアイデアが気に入っています。hereのような答えを見ましたが、単純な関数の場合、DocTest のようなもので問題ないと思います。私の目標は、関数を作成するときにコメント ヘッダーでテストを定義することです。お気に入り :

function Plus(i1, i2 : integer) : integer;
//>>> Check( Plus(1, 3) = 4)
begin
  result := i1 + i2;
end;
4

1 に答える 1

2

アイデアは、「コンソール」を使用していくつかの結果をテスト コードに出力し、出力テキストの内容を期待値と比較できるというものです。

たとえば、優れた 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

私の知る限り、Delphiの世界に統合された既存のソリューションはありません。

コメントにテストを記述すると、IDE のオートコンプリートが不足し、オブジェクト パスカルの設計が多少崩れます。DWS を使えば簡単ですが、コマンドラインの Delphi コンパイラを呼び出す必要があります。正直なところ、テスト専用の独自のユニット セットを使用することの何が悪いのかわかりません。固定値とランダム値を使用するループを含む小さなコードはfor..to、固定パラメーター セットよりもはるかに優れたテスト カバレッジを実現します。

于 2012-04-06T09:04:40.557 に答える