Я хочу начать использовать mock-объекты в моих проектах Delphi.
После быстрого google я нашел те:
Итак, мой вопрос: что вы любите и почему?
Я хочу начать использовать mock-объекты в моих проектах Delphi.
После быстрого google я нашел те:
Итак, мой вопрос: что вы любите и почему?
Woaw, я руководитель проекта PascalMock, и я впервые услышал о Delphi Mock Wizard! Очень приятное дополнение к PascalMock.
Кстати, у вас также есть несколько небольших фреймворков:
Возможно, есть и другие?
Также PascalMock является открытым исходным кодом, и приветствуются вклады или идеи улучшений.
PS: Последняя версия PascalMock от CVS добавляет дополнительные функции к версии 1.1, например:
Хотя он стабилен, PascalMock не работал в течение многих лет.
Существует новая макетная библиотека под названием Delphi Mocks. Он работает только с Delphi XE2 или новее.
Попробуйте Dsharp. Это похоже на Delphi Mocks, но без утечек памяти.
IMHO DSHARP лучше, хотя я был в восторге от Delphi Mocks сначала.
Наш открытый исходный код mORMot framework теперь может в своей нестабильной версии заглушить или издеваться над любым интерфейсом Delphi.
Как обычно, лучший способ объяснить, что делает библиотека, - это посмотреть на код, используя его. Вот пример (аналогичный тому, который поставляется с RhinoMocks), чтобы проверить, что при выполнении сценария "забыл мой пароль" мы вспомнили, что вы вызываете метод Save()
должным образом:
procedure TMyTest.ForgotMyPassword;
var SmsSender: ISmsSender;
UserRepository: IUserRepository;
begin
TInterfaceStub.Create(TypeInfo(ISmsSender),SmsSender).
Returns('Send',[true]);
TInterfaceMock.Create(TypeInfo(IUserRepository),UserRepository,self).
ExpectsCount('Save',qoEqualTo,1);
with TLoginController.Create(UserRepository,SmsSender) do
try
ForgotMyPassword('toto');
finally
Free;
end;
end;
И... это все, так как проверка будет происходить, когда экземпляр IUserRepository
будет выпущен.
Доступные функции (некоторые из них уникальны по сравнению с другими фальсификациями Delphi):
var
и out
в качестве возвращаемого значения в дополнение к результату функции;Смотрите похожие статьи блога:
Delphi Mock Wizard просто создает волшебников для Pascal Mock. Они не являются конкурирующими реализациями.
Посмотрите на " Delphi Mocks" и " Delphi Mocks: основы