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?

0 ответов

Другие вопросы по тегам