4
いいえ、私は優れたDelphi-Mocks Frameworkを使用していましたが、問題が発生しました。次のように私はDUnitのとDelphi-モックを使用して販売インタフェースをテストし、それを使用しようとしています、今Delphi-Mockフレームワークを使用してDelphiの子クラスでmockを使用する方法
IDepartment = Interface
['{F4915950-8F32-4944-A3B6-8E08F6C38ECC}']
function getID() : Integer;
function getName() : String;
property ID: Integer read getID;
property Name: String read getName;
end;
ISale = Interface
['{F4915950-8F32-4944-A3B6-8E08F6C38E77}']
function getAmmount() : Currency;
function getDepartment() : IDepartment;
property Ammount: Currency read getAmmount;
property Department : IDepartment getDepartment;
end;
:Let'sは、私は次のインタフェースを持っていると仮定し
procedure TMyTest.Test_Sale_HasDepartment;
var
mckDepartment : TMock<IDeparment>;
mckSale : TMock<ISale>;
begin
mckDepartment := TMock<IDepartment>.Create;
mckDepartment.Setup.WillReturn('My Department').When.Name;
mckDepartment.Setup.WillReturn(1).When.ID;
// Create a sale Mock
mckSale := TMock<ISale>.Create;
mckSale.Setup.WillReturn(100).When.Ammount;
//** Here´s there is where I don´t know how to add a "child mock"**
mckSale.Setup.WillReturn(TValue.From<IDepartment>(mckDepartment)).When.Department;
// What I am trying to get is the following:
WriteLn(mckSale.Instance.Department.Name); // Should return "My Department" but fails with an AV.
end;
をだから私の問題は:どのように私は既存の模擬されたインターフェイスに子モックを追加し、そのメソッドとプロパティを呼び出すことができますか?
ありがとうございます! P.P.私はDelphi XE2を使用しています。
ありがとうランディー、それは働いた。また、次のコードで動作します: 'mckSale.Setup.WillReturn(TValue.From(mckDepartment)).Departament;' –