Что такое mock/stub? Какие знаете инструменты для работы с ними?
Mock и Stub - это два типа объектов, используемых в тестировании программного обеспечения для изоляции и эмуляции компонентов системы.
Mock:
Определение: Mock объект создается для имитации поведения реального объекта или системного компонента.
Использование: Mocks используются для проверки вызовов методов, передачи параметров, и возвращения заданных результатов.
Пример: Если у вас есть класс, который взаимодействует с базой данных, вы можете создать Mock объект, чтобы эмулировать эту базу данных и проверить, вызываются ли методы взаимодействия с базой данных.
Stub:
Определение: Stub представляет собой объект, предназначенный для предоставления заранее определенных ответов на вызовы методов.
Использование: Stubs используются для замены реальных объектов, чтобы предоставить контролируемые ответы и изолировать тестируемый код от зависимостей.
Пример: Если у вас есть функция, которая отправляет запрос на удаленный сервер, вы можете заменить этот запрос Stub объектом, чтобы избежать реальных сетевых вызовов во время тестирования.
Инструменты для работы с Mock и Stub:
JUnit и Mockito (Java):
Mockito - библиотека для создания Mock и Stub объектов в тестах на Java.
// Пример создания Mock объекта с использованием Mockito
import static org.mockito.Mockito.*;
List<String> mockedList = mock(List.class);
when(mockedList.get(0)).thenReturn("first");
unittest.mock (Python):
В Python можно использовать модуль
unittest.mock
для создания Mock и Stub объектов.
# Пример создания Mock объекта с использованием unittest.mock
from unittest.mock import MagicMock
mock_object = MagicMock()
mock_object.method.return_value = "mocked result"
Sinon.js (JavaScript):
Sinon.js - библиотека для создания Mock и Stub объектов в тестах на JavaScript.
// Пример создания Stub объекта с использованием Sinon.js
const sinon = require('sinon');
const stub = sinon.stub();
stub.returns('stubbed result');
Last updated
Was this helpful?