Сегодня я хочу рассказать о необычном подходе к написанию тестов, к которому я как-то незаметно пришел в ходе работы над несколькими проектами разной величины, и который я почему-то не встречал в чистом виде у других, хотя он, в общем-то, лежит на поверхности. С недавних пор я начал писать кое-какой код на Go, и как только встал вопрос о написании тестов, я опять вспомнил об этом подходе.
Очень схематично, каждый юнит-тест обычно состоит из следующих шагов:
1. инициализации входных данных;
2. выполнения бизнес-логики и получения результата;
3. сравнения результата с эталоном.
Входные и выходные данные зачастую находятся в самом коде; когда изменения кода привносят ожидаемые изменения в выходных данных, эталонные результаты приходится править вручную. В некоторых случаях, когда данные для теста объемны, их выносят в отдельные файлы, но поддержка эталонных данных, а так же логика сравнения остается на плечах разработчика.
[Читать дальше →][1]
[1]:
https://habrahabr.ru/post/329260/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut