Чем mock отличается от stub в phunit?

Mock - используется для проверки состояния объекта, например, чтобы проверить был ли вызван метод
Stub - используется для возвращения ложных (тестовых) данных

Вопрос: следующий код это mock или stub? Мы проверяем вызов метода, но в то же время возвращаем ложные данные
$observer = $this->createMock(Observer::class);

        $observer->expects($this->once())
        ->method('abstractMethod')
        ->will($this->returnValue('wow'));
  • Вопрос задан
  • 1543 просмотра
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
https://vc.ru/flood/44925-za-chto-ya-cenyu-testiro...

Главное различие между stubs и mocks заключается в том, что в одном случае мы управляем состоянием, а в другом - поведением.

Когда мы используем mocks, мы заменяем весь модуль на mock (ложный, тестовый объект, имитирующий настоящий). А stub - это функция, которая всегда выводит один и тот же результат, вне зависимости от того, что было подано на вход. Mocks используют для того, чтобы проверить, была ли функция вызвана с правильными аргументами, а stubs, чтобы протестировать, как функция работает с полученным ответом. Стабы нужны для проверки состояния метода, а моки используются для регулировки поведения.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽