---
title: Mocks и Stubs
seo:
  title: Mocks и Stubs — Java Developer
  description: Тема «Mocks и Stubs» для собеседования Java Developer. Чем stub отличается от mock?
---

[Все темы Java Developer](/java-developer)

## <strong>Чем</strong> <code>stub</code> <strong>отличается от</strong> <code>mock</code><strong>?</strong> [#q-14bee738d69b81beb1f4c4fac90b8dde]

<strong>Различия между</strong> <code>stub</code> <strong>и</strong>
<code>mock</code>
<strong>&#58;</strong>

#### <code>Stub</code>

- <strong>Назначение&#58;</strong> Предоставляет заранее определенные ответы на
  вызовы, используется для упрощения тестирования.

- <strong>Использование&#58;</strong> Подставляет данные или поведение, чтобы
  изолировать тестируемый модуль.

- <strong>Фокус&#58;</strong> На вводе и выводе данных.

#### <code>Mock</code>

- <strong>Назначение&#58;</strong> Имитация поведения объектов для проверки
  взаимодействий и вызовов.

- <strong>Использование&#58;</strong> Устанавливает ожидания на вызовы методов и
  проверяет их выполнение.

- <strong>Фокус&#58;</strong> На проверке взаимодействий и порядков вызовов.

#### Пример&#58;

```java
// Stub: предоставление данных
StubService stubService = mock(StubService.class);
when(stubService.getData()).thenReturn("stub data");

// Mock: проверка взаимодействий
MockService mockService = mock(MockService.class);
mockService.performAction();
verify(mockService).performAction();
```

:::note[Ссылки для изучения]

1. [Тестирование с использованием моков](https://sky.pro/media/chto-takoe-testirovanie-s-ispolzovaniem-mokov)
   :::
