Nov 26, 2019 19:31
Иногда на интервью когда описывают принцип работы, говорят что нужно будет искать ошибки в коде. На мой резонный вопрос "а у вас что нет тестов?", отвечают "тесты есть но они же не покрывают весь код."
И вот тут вопрос, понимаю конечно что у некоторых код бывает настолько старым что про тесты тогда не сильно думали, но почему тогда в последнее время не покрыли тестами существующий код? Почему не проводили рефакторинг? В общем, получается всё работает каким-то чудом.
Пройдясь по литературе и по основам языков, во всех, за редким исключением, уделяются главы тестированию или TDD/XP(test driven development/extremly progtamming), смысл которых, сначала пишем тестовый код, потом реальный, инкрементным методом. Написали минимальный тест, написали минимальный код, только чтобы тест был выполнен, усложнили тест, и опять доработали код. Таким образом будет полное покрытие тестом.
Но как обычно, мы комментарии не пишем, куда уж там тесты. Не говоря уже про использование Junit или unittest, которые есть "из коробки".
Хотя и так понятно, что с нынешними системами верификация кода, это пожалуй более важная задача чем написания самого кода.