Канал Friflex о разработке на Flutter. Обновления, плагины, полезные материалы — превращаем знания в реальный опыт, доступный каждому разработчику.
🔗 Наш канал для разработчиков: @friflex_dev
🔗 Канал о продуктовой разработке: @friflex_product
Post #154
660
Привет! На связи Анна, Flutter Team Lead😉
Совсем недавно мы говорили про тесты во Flutter-приложениях, разобрались в видах и ситуациях использования. Сегодня поговорим об одном из самых известных инструментов для тестирования — библиотеке mocktail.
Часто в процессе написания тестов появляется необходимость имитировать работу того или иного экземпляра класса с целью проверить его работу в разных сценариях. В таком случае на помощь придет mocktail. Разберемся подробнее в возможностях этой библиотеки.
✔️ Создание Mock и Fake
Mock и Fake — понятия, которые существуют не только в тестировании Flutter-приложений. Это так называемые тестовые двойники — классы, предназначенные для упрощения процесса тестирования и изоляции тестируемого объекта от внешних зависимостей.
Оба понятия довольно схожи, но имеются небольшие различия. Моки имитируют поведения реальных объектов, а фейки — копируют функциональность реального объекта, но с некоторым упрощением.
Подробнее понять сущность тестовых двойников поможет эта статья.
Библиотека mocktail дает доступ к Mock- и Fake-классам. Чтобы создать моки или фейки, достаточно наследоваться от них.
✔️ Определение поведения метода — when()
Метод when() позволяет к тестовому объекту определить конкретное поведение.
✔️ Проверка вызовов метода — verify()
Метод verify() позволяет проверить, был ли вообще вызов того или иного метода, с какими параметрами и сколько раз.
Например, так мы можем проверить, что в нашем примере метод read() был вызван 1 раз.
А так можно получить список параметров, с которыми был вызван метод write().
✔️ Сбросить все настроенные поведения — reset()
Тут все просто — если вам нужно убрать все те настройки поведени, которые были заданы ранее, поможет метод reset().
Как показывает практика, mocktail являтся достаточно гибким инструментом. С его помощью можно протестировать даже сложные сценарии.
➡️ Документация библиотеки содержит еще много интересных примеров, рекомендую ознакомиться.
Совсем недавно мы говорили про тесты во Flutter-приложениях, разобрались в видах и ситуациях использования. Сегодня поговорим об одном из самых известных инструментов для тестирования — библиотеке mocktail.
Часто в процессе написания тестов появляется необходимость имитировать работу того или иного экземпляра класса с целью проверить его работу в разных сценариях. В таком случае на помощь придет mocktail. Разберемся подробнее в возможностях этой библиотеки.
✔️ Создание Mock и Fake
Mock и Fake — понятия, которые существуют не только в тестировании Flutter-приложений. Это так называемые тестовые двойники — классы, предназначенные для упрощения процесса тестирования и изоляции тестируемого объекта от внешних зависимостей.
Оба понятия довольно схожи, но имеются небольшие различия. Моки имитируют поведения реальных объектов, а фейки — копируют функциональность реального объекта, но с некоторым упрощением.
Подробнее понять сущность тестовых двойников поможет эта статья.
Библиотека mocktail дает доступ к Mock- и Fake-классам. Чтобы создать моки или фейки, достаточно наследоваться от них.
class FakeExample extends Fake implements Example {}
class MockExample extends Mock implements Example {}
✔️ Определение поведения метода — when()
Метод when() позволяет к тестовому объекту определить конкретное поведение.
class Example {
String read() => 'ready!';
String write(String data) => 'data recorded!';
}
final mockExample = MockExample();
test(
'testing mockExample.read()',
() {
when(mockExample.read).thenReturn('successfully read');
expect(mockExample.read(), 'successfully read!');
},
);
✔️ Проверка вызовов метода — verify()
Метод verify() позволяет проверить, был ли вообще вызов того или иного метода, с какими параметрами и сколько раз.
Например, так мы можем проверить, что в нашем примере метод read() был вызван 1 раз.
verify(mockExample.read).called(1);
А так можно получить список параметров, с которыми был вызван метод write().
final list = verify(() => mockExample.write(captureAny())).captured;
✔️ Сбросить все настроенные поведения — reset()
Тут все просто — если вам нужно убрать все те настройки поведени, которые были заданы ранее, поможет метод reset().
reset(mockExample);
Как показывает практика, mocktail являтся достаточно гибким инструментом. С его помощью можно протестировать даже сложные сценарии.
➡️ Документация библиотеки содержит еще много интересных примеров, рекомендую ознакомиться.
- ❤ 6
- 🔥 4
- ❤🔥 1










