Шпаргалка: unit тестирование. Fake, stub, mock. Примеры на PHPUnit.

preview_player
Показать описание
#phpunit #stub #mock #unitтестирование #unitтесты #fake

9:20 - Fake
11:51 - Stub
15:41 - Mock

Аббревиатура ATRIP.
A – Automatic - означает, что тесты должны запускаться автоматически и быть неотъемлемой частью процесса сборки.

T – THROUGH – означает целостность, покрытие всевозможных кейсов тестируемого модуля. Например, если ваш код ведет себя по-разному в зависимости от часового пояса клиента, то можно будет утверждать о качественно написанном тесте, если он покроет все возможные варианты часовых поясов.

R – repeatable. Повторяемость теста означает, что один и тот же тест должен всегда выдавать одинаковый результат на одинаковые входящие данные. Тест не должен зависеть от каких-то внешних факторов. Если вы прогоняете тест миллион раз и 1 раз тест выдал ошибку, значит тест составлен не корректно.

I – Independent. Независимость, и это очень важный критерий. Все модульные тесты должны быть изолированных друг от друга, не должны влиять друг на друга. Каждый тест можно запустить отдельно, любой набор тестов можно запускать в любом порядке и результат всегда должен быть одинаков – это признаки хорошо составленных тестов. Состояние системы должно нормализоваться, то есть возвращаться к исходному перед каждым отдельно взятым тестом. Так же не должно быть зависимости от внешних систем, например, сторонних сервисов, которые могут быть недоступны в какой-то момент времени.

P – professional. Тесты должны быть выполнены профессионально, ведь тесты — это точно такой же код, как и остальная часть программы. Соответственно к тестам можно и нужно применять лучшие практики программирования.

Буду рад поддержке: лайк, комментарий (адекватная критика тоже приветствуется), денюжка - все мотивирует в плюс.
Рекомендации по теме
Комментарии
Автор

Более 4 лет работаю на php, но в ваших видео нахожу много полезного для себя. Спасибо. Жаль что редко выпускаете.

justr
Автор

Спасибо огромное за вашу работу. Очень понравилось видео !

supchic
Автор

Спасибо за видео - теперь какое то понятия о stub и mock имеется)

sani
Автор

Классный урок. Это скорее не шпаргалка а полноценный мини курс) Спасибо

lexo
Автор

Если использовать класс реализацию и ввести 100 или 1000 программа сломается. Странно что вы допускаете такие простейшие ошибки.

qlsqjbo
Автор

Отличная инфа и подача. Могли бы вы снять про тест задания, очереди от Laravel?

AlexanderKh-jxjr
Автор

Спасибо! Это значит PHP Test да? Вы знаете, что такое Moodle php Test ? Спасибо!

meerimattokur
Автор

А где посмотреть про вызов метода с аргументами можно? Очень надо

syracuse
Автор

На $footsteps 100 поведение провальное. Для того чтобы покрыть такие кейсы нужно перебирать все варианты до какого-то предела или тестировать значения которые в ифах?

hanasugisakimusiji
Автор

подскажите на ваш взгляд где лучше хранить модульные тесты, придерживаться стандартного пути project/tests/Unit или например в областях бизнес логики например последний подход вроде по удобней будет? открыл область логики и все в одном месте будет рядом?

gyfsmqz
Автор

А если реальный код на проекте обращается к чужому API в котором изменилась структура данных, то подменять get data плохо. У вас тест пройдет, а на продакшене не будет работать.

eugenefedorov
Автор

Только в A TRIP не through, а thorough

konstantinsurikov
Автор

фига пхпшник с целыми зубами и не бомжастого вида

noone-hikq