4
좋아요, 저는 우수한 Delphi-Mocks Framework을 사용하고 있으며 방금 문제가 발생했습니다. 다음과 같이 내가은 DUnit와 델파이 모의 객체를 사용하여 판매 인터페이스를 테스트하고 그것을 사용하려고 지금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;
을 그래서 내 질문 : 어떻게 기존의 조롱 된 인터페이스에 하위 모의 객체를 추가하고 메소드 및 속성을 호출 할 수 있습니까?
감사합니다. 오후 8시 30 분 P.S. 델파이 XE2를 사용하고 있습니다.
감사합니다. Randy에게 감사드립니다. 또한 다음 코드로 작업했습니다 :'mckSale.Setup.WillReturn (TValue.From (mckDepartment)) .Departament;' –