私がユニット テストを行っているクラスは、DB テーブルの各レコードをスクロールし、フィールドの値を前の値に合計します。以下は、骨に縮小されたクラスです。
procedure TSumList.Sum;
var
FSum:integer;
begin
FSum:=0;
FDB.First;
while not FDB.EOF do
begin
FSum:=FSum+FDB.GetAmount;
FDB.Next;
end;
end;
FDB は、IIDBTable という名前の DB モック インターフェイスを指します。
以下は、依存性注入の DB モックです。
IIDBTable = interface
['{A299D1D6-93AF-45CC-8DE2-9A4EE188C352}']
procedure First;
procedure Next;
function EOF : boolean;
function GetAmount:integer;
end;
TMockDBTable = class (TInterfacedObject,IDBTable)
procedure First;
procedure Next;
function EOF : boolean;
function GetAmount:integer;
end;
問題は、テスト用のモックにデータを提供する方法がわからないことです。もちろん、AddValues(aAmount:integer) などの追加の手順を追加することもできます。
これのベストプラクティスは何ですか?
Spring for Delphi フレームワークを使用しています