Природня і економна дорожня карта для переходу команди розробки на Тест центровану розробку
phpunit_tdd && mocker
Луцьк 2017
Для кого ця доповідь
*всім, кого не перераховано - срочно перепрофільовуватись!!! :)
Всі* ми виросли з функціонального програмування
<?php
function get_shit($input_shit) {
return $output_shit;
}
in progress...........
Демотиватори і міфи написання тестів
*
*биче гівно
Правильні запитання для початку
Ваші розробники вже пишуть тести!!!*
Кожна команда хоч раз писала
ось такий код
Цей код - це і є зародки тестів*.
*див.: чи потрібні тести розробникам?
Ситуація, яка змінила все...
(с) Дмитро Данилевський 2016-2017
Чи можна пришвидшити розробку з тестами?
А чи можна замінити повільні виклики швидкими?
Мінуси
Можна,
якщо дати розробникам схожий по часу написання інструмент
*потрібно змінити функціональне мислення на об’єктне
Можливість швидких точок для відладки (breakpoints)
*код з devel/php одразу викидається, максимум - додається в README.md
Перша думка - зробіть Behat тест*
*Можна, але він буде доходити до потрібної точки відладки так само довго, як і людина. А тобто
ПО-ВІ-ЛЬНО
*в копілку міфів
Друга думка - PHPUnit (unit тести)
Плюси
PHPUnit (unit тести)
Мінуси
PHPUnit (unit тести)
Мінуси*
*Ми створили phpunit_tdd модуль...
*few hours of @podarok and @danylevskyi
Як запустити тести - розробнику
Звичайна drush ev команда, або власна, самописна - запускає тест
~4 секунди для отримання точки зупинки IDE xdebug
Як запустити тести - для QA
Як запустити тести - клієнту
*на зовнішньому сервісі ніяких змін
Підсумок
Демо сервісу mocker
Тільки якщо є час
Посилання на код
Завдання: опублікувати на drupal.org
Демо тестів phpunit_tdd
Тільки якщо є час
Посилання на код
Завдання: опублікувати на drupal.org
Книга, яка варта уваги в контексті доповіді*
*так, книги все ще друкуються і деякі навіть варті до прочитання
Запитання