如何使用Delphi-Mocks框架在Delphi中使用子类中的模拟
发布时间:2020-12-15 09:14:36 所属栏目:大数据 来源:网络整理
导读:好的,我一直在使用优秀的 Delphi-Mocks Framework,我刚遇到一个问题.假设我有以下接口: IDepartment = Interface ['{F4915950-8F32-4944-A3B6-8E08F6C38ECC}'] function getID() : Integer; function getName() : String; property ID: Integer read getID;
好的,我一直在使用优秀的
Delphi-Mocks Framework,我刚遇到一个问题.假设我有以下接口:
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; 现在,我尝试使用DUnit和Delphi-Mocks测试Sale接口,并按如下方式使用它: 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; 所以我的问题是:如何将一个子模拟添加到现有的模拟接口并调用其方法和属性? 谢谢! 解决方法
mckSale.Setup.WillReturnDefault(‘getDepartment’,TValue.From(mckDepartment));
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |