Заглушка против Мока

Опубликовано: 22 Февраля, 2023

Объекты, известные как «заглушки», хранят определенные данные и используют их для генерации ответов для тестов. Другими словами, заглушка — это объект, который выглядит как настоящий объект, но имеет только методы, необходимые для тестирования. Когда мы не хотим использовать объекты, которые могут отвечать реальными данными, вместо этого мы используем заглушки. Самый легкий и статичный вид тестового двойника известен как заглушка.

Когда использовать заглушку?

  • Мы можем реализовать интерфейс, который отделит нас от сторонней библиотеки, если мы разрабатываем серверную часть небольшого приложения, которое будет взаимодействовать с API. Этот интерфейс в конечном итоге будет создавать жестко закодированные значения и служить заглушкой. В заключение, модульные тесты могут использовать значения.
  • Если мы тестируем отдельное приложение, мы установим заглушку для остальных API, на которых оно основано. Мы также можем сделать это с помощью любого внутреннего инструмента, созданного командой разработчиков.

Что такое Мок?

Объекты, содержащие вызовы методов, являются макетами. Были упомянуты динамические оболочки для зависимостей, используемые в тестах. Он используется для документирования и проверки того, как классы Java взаимодействуют друг с другом. Наиболее мощная и адаптируемая вариация тестовых двойников известна как имитация. Мы используем технику, называемую насмешкой (). Макеты и заглушки идентичны, однако вы можете утверждать против фиктивного объекта, тогда как вы не можете с заглушкой. Мок-объект решает, прошел ли модульный тест или нет. Обычно на тест приходится не более одного макета.

Когда использовать мокап?

  • Фреймворк Mockito можно использовать для имитации зависимых классов, если серверная часть разрабатываемого приложения содержит множество классов, которые необходимо протестировать.
  • Фиктивную структуру, такую как mountebank или WireMock, можно использовать, если нам нужно отойти от требований API в HTTP при создании серверной части приложения. Затем сделайте подделку для классов зависимостей теста.

Заглушка против Мока

Ниже приведены различия между заглушкой и макетом:

Параметры Заглушка Насмехаться
Источник данных Источник данных Stubs жестко запрограммирован. Он часто тесно связан с набором тестов. Тесты размещали данные на макетах.
Цель Назначение заглушки - государственная поверка. Цель mock — проверка характеристик.
Сделано Большинство заготовок написаны от руки, но другие создаются с помощью инструментов. Обычно для создания макетов используются сторонние библиотеки, такие как Mockito, JMock и WireMock.
Применение Заглушки обычно используются для простых наборов тестов. В больших наборах тестов часто используются макеты.
Графический пользовательский интерфейс (GUI) или пользовательский интерфейс Заглушки не имеют графического интерфейса. Моки имеют графический интерфейс.
Преимущества Здесь доступны бесплатные инструменты и множество онлайн-ресурсов. Здесь доступны инструменты с открытым исходным кодом и множество интернет-ресурсов.
Недостатки Из-за того, что данные жестко закодированы, тестовые примеры тесно связаны друг с другом. Используется в основном разработчиками, а не тестировщиками.
Технические знания Использование заглушек требует средних технических знаний. Использование моков требует значительных технических знаний.
Реализовано Заглушки реализуются разработчиками, тестировщиками сами по себе или создаются инструментами. Разработчики реализуют моки, используя сторонние библиотеки, такие как JMock, WireMock и т. д.