Delphi Mocks с помощником класса
Мне очень нравится Delphi Mocks, но, похоже, у него проблемы с помощниками классов. У меня есть помощник класса, расширяющий TRESTResponse, и я хочу протестировать добавленные мной функции. К сожалению, это не работает. Я создал следующую простую репродукцию:
MyClass = class
function MyFunc1: Integer; virtual;
end;
MyClassHelper = class helper for MyClass
function MyFunc2: Integer; virtual;
end;
var
LMock: TMock<MyClass>;
begin
LMock := TMock<MyClass>.Create;
LMock.Setup.WillReturn(2).When.MyFunc1;
LMock.Setup.WillReturn(2).When.MyFunc2;
Assert(LMock.Instance.MyFunc1 <> 1);
Assert(LMock.Instance.MyFunc2 <> 1);
end;
function MyClass.MyFunc1: Integer;
begin
Result := 1;
end;
function MyClassHelper.MyFunc2: Integer;
begin
Result := 1;
end;
Мокинг MyFunc1 работает должным образом, но MyFunc2 нельзя имитировать. Вторая строка LMock.Setup.WillReturn вызывает исключение[MyClass] already defines Will Return When for method [MyFunc1]
. Если вы удалите фиктивную настройку дляMyFunc1
тогда исключение не возникает, но MyFunc2
не издеваются.
Есть предложения, как это решить? Или невозможно издеваться над помощниками классов с помощью Delphi Mocks?