Какая ваша любимая дефолтная библиотека?
Я хочу начать использовать mock-объекты в моих проектах Delphi.
После быстрого google я нашел те:
Итак, мой вопрос: что вы любите и почему?
Ответы
Ответ 1
Woaw, я руководитель проекта PascalMock, и я впервые услышал о Delphi Mock Wizard! Очень приятное дополнение к PascalMock.
Кстати, у вас также есть несколько небольших фреймворков:
Возможно, есть и другие?
Также PascalMock является открытым исходным кодом, и приветствуются вклады или идеи улучшений.
PS: Последняя версия PascalMock от CVS добавляет дополнительные функции к версии 1.1, например:
- автоматическое создание макета во время выполнения для интерфейсов с использованием RTTI
- позволяет ожидать вызовы методов в любом порядке
- ожидает не менее x вызовов метода
Ответ 2
Хотя он стабилен, PascalMock не работал в течение многих лет.
Существует новая макетная библиотека под названием Delphi Mocks. Он работает только с Delphi XE2 или новее.
Ответ 3
Попробуйте Dsharp. Это похоже на Delphi Mocks, но без утечек памяти.
IMHO DSHARP лучше, хотя я был в восторге от Delphi Mocks сначала.
Ответ 4
Наш открытый исходный код 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):
- Очистить различие между заглушками и mocks, с интеграцией с нашим Групповые классы тестирования;
- Обрабатывать параметры
var
и out
в качестве возвращаемого значения в дополнение к результату функции;
- Определение stubbing через свободный интерфейс или делегат/обратный вызов;
- Отказывание по шаблонам "ожидать-запустить-проверить" и/или "запустить проверку" (так называемый "тестовый шпион" ) по выбору в зависимости от ожиданий тестирования;
- Интегрированная трассировка вызовов методов;
- Open Source, работающий от Delphi 6 до XE3;
- Легкий и быстрый (не полагайтесь на медленный TVirtualInterface).
Смотрите похожие статьи блога:
Ответ 5
Delphi Mock Wizard просто создает волшебников для Pascal Mock. Они не являются конкурирующими реализациями.
Ответ 6
Посмотрите на " Delphi Mocks" и " Delphi Mocks: основы