Спершу зафіксувати те, що код робить зараз, а не те, що він мав би робити: characterization-тести (Майкл Фезерс) або golden master на рівні HTTP чи консольної команди. Далі знайти шви (seams), через які можна підставити залежності, мінімальними безпечними рефакторингами винести логіку в класи, що тестуються, і лише тоді міняти поведінку. Нову логіку пишуть поруч і з тестами (sprout method, wrap method), а не всередині старого моноліту.
Тестування для Senior: питання на співбесіду
2 питання рівня Senior з теми Тестування з розгорнутими відповідями, порадами та перевіркою.
Тема
Рівень
2
питання
TST
Тестування·Senior
·легасі
·characterization tests
·golden master
Завантажую відповідь…
Сторінка питання →
TST
Тестування·Senior
·швидкість тестів
·parallel
·шардування
Спершу виміряти (`pest --profile`, час по джобах CI), потім прибрати дешеві втрати: хешування паролів, міграції на кожен тест, справжні `sleep()` і мережу, зайві дані з фабрик. Далі паралелити (`--parallel`, шардування на кілька машин), тримаючи тести ізольованими: своя база на процес, без спільних файлів і статики. Надійність тримається на правилі «flaky-тест це баг з власником», а не на автоматичних повторах.
Завантажую відповідь…
Сторінка питання →
МИНУЛОГО РАЗУ
Немає карток для цього зрізу
РАУНД ЗАВЕРШЕНО
/