Рет қаралды 14,144
t.me/phpashest... - php телеграмм канал.
t.me/phpmentor - eng php телеграмм канал.
#phpunit #stub #mock #unitтестирование #unitтесты #fake
github.com/aas... - код из видео.
9:20 - Fake
11:51 - Stub
15:41 - Mock
Аббревиатура ATRIP.
A - Automatic - означает, что тесты должны запускаться автоматически и быть неотъемлемой частью процесса сборки.
T - THROUGH - означает целостность, покрытие всевозможных кейсов тестируемого модуля. Например, если ваш код ведет себя по-разному в зависимости от часового пояса клиента, то можно будет утверждать о качественно написанном тесте, если он покроет все возможные варианты часовых поясов.
R - repeatable. Повторяемость теста означает, что один и тот же тест должен всегда выдавать одинаковый результат на одинаковые входящие данные. Тест не должен зависеть от каких-то внешних факторов. Если вы прогоняете тест миллион раз и 1 раз тест выдал ошибку, значит тест составлен не корректно.
I - Independent. Независимость, и это очень важный критерий. Все модульные тесты должны быть изолированных друг от друга, не должны влиять друг на друга. Каждый тест можно запустить отдельно, любой набор тестов можно запускать в любом порядке и результат всегда должен быть одинаков - это признаки хорошо составленных тестов. Состояние системы должно нормализоваться, то есть возвращаться к исходному перед каждым отдельно взятым тестом. Так же не должно быть зависимости от внешних систем, например, сторонних сервисов, которые могут быть недоступны в какой-то момент времени.
P - professional. Тесты должны быть выполнены профессионально, ведь тесты - это точно такой же код, как и остальная часть программы. Соответственно к тестам можно и нужно применять лучшие практики программирования.
Буду рад поддержке: лайк, комментарий (адекватная критика тоже приветствуется), денюжка - все мотивирует в плюс.
www.donational... - кошелек.