正如标题所示,我正在尝试编写一个测试来验证方法的一个版本是否被调用,而重载版本不是。由于 Delphi-Mocks 似乎在参数匹配上使用索引,我看到失败,并且实际上调用了重载函数,而不是。
样例测试接口
TFoo = class(TObject)
public
function Bar(const a, b, c: string) : string; overload;virtual;
function Bar(const a: string) : string; overload;virtual;
end;
示例测试代码
procedure TestClass.Test
var mock : TMock<TFoo>;
bar : TBar;
begin
mock := TMock<TFoo>.Create;
bar := TBar.Create(mock);
mock.Setup.Expect.Once.When.Bar('1','2','3');
mock.Setup.Expect.Never.When.Bar(It(0).IsAny<string>());
//Will Wind up down an if-branch calling either bar(1) or bar(3)
bar.Execute;
mock.VerifyAll;
end;
谢谢!