Как не забыть тестовый код: #if RELEASE + #error в Visual Studio

.Net Core

При разработке приложений часто возникает ситуация: ты временно меняешь поведение рабочего метода, чтобы разобраться с ошибкой, что-то проверить или обойти проблему на время. Сколько раз потом приложение с такими правками было собрано? Когда включается человечески фактор, вопрос ошибки становится вопросом времени.

Вот сегодня я искал баг в приложении, которое год назад сделал. Ошибка была из серии, что сразу и не определишь, в чем дело. Взяв максимум данных у клиента начал воспроизводить ошибку.

Для работы с собранными данными, а не теми, которые апп должен был получить по рабочему сценарию, нужно было подменить их. А после тестов и правок не забыть вернуть обратно!

Один из простых и надёжных способов защитить себя от этого — использовать директивы препроцессора и #error

#if RELEASE
#error TEMPORARY TEST CODE DISABLED – REMOVE BEFORE PUBLISH
#endif     

Теперь студия ведет себя так:

  • в Debug всё компилируется и работает
  • В Release — сборка гарантированно падает
  • Опубликовать приложение с этим кодом невозможно
  • Visual Studio подсветит ошибку красным на этапе компиляции

Раньше я часто добавлял комментарии типа // TODO, но они только проскакивали в консоли при сборке, ничего не блокируя. Про них я забывал и забивал 🙂


Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment





Срок проверки reCAPTCHA истек. Перезагрузите страницу.



MarkiMarta.ru. Записки отца-программиста" с 2009 г.
Категория информационной продукции 18+
Яндекс.Метрика