Как следует из названия, я пытаюсь написать тест, чтобы проверить, что вызывается одна версия метода, а перегруженная версия - нет. Поскольку Delphi-Mocks, по-видимому, использует индексирование при сопоставлении параметров, я вижу неудачу и что перегруженная функция вызывается, когда она на самом деле, а не.Delphi Mocks - проверка перегруженного метода никогда не называется
Sample Test Interface
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;
Спасибо!
Это решение, в котором я закончил использовать. Это была именно та часть, которую мне не хватало. – mwilkinson