C #: лучшие практики отладки. Печать - PullRequest
5 голосов
/ 05 января 2011

Какова лучшая практика в отношении Debug.Print заявлений?

Стоит ли засорять мои методы класса операторами Debug.Print или мне следует избегать Debug.Print в целом?

Если Debug.Print заявления приемлемы, стоит ли мне рассмотреть возможность использования Trace.Print или EventLog?

Нужны ли Debug.Print операторы для модульных тестов? Можно ли избежать Debug.Print операторов с хорошо написанными модульными тестами?

Ответы [ 3 ]

5 голосов
/ 05 января 2011

Debug.Print приемлемо, не в последнюю очередь потому, что они будут скомпилированы в ваших сборках релиза.Однако «засорять» ваш код этим не кажется особенно продуктивным или полезным.

Вы можете добавить его во время отладки определенной области кода.После того, как вы определили дефект, вы можете написать модульный тест, чтобы покрыть случай, исправить ошибку, а затем удалить вызов на Debug.Print.

. Что я иногда использую и оставляю в базе кода, это Debug.Assert - это похоже на встроенную точку останова, если мое приложение не находится в ожидаемом состоянии, которое является просто дополнительной сетью безопасности при выполнении как автоматического, так и ручного тестирования.

Debug.Print не требуется в модулетесты, и не должны быть добавлены ради модульных тестов.

2 голосов
/ 05 января 2011

Вам вообще не нужен Debug.Print с юнит-тестами! Суть модульных тестов заключается в том, что вы автоматически получаете указание, был ли тест успешным или нет, вам не нужно искать отладочные отпечатки для этого.

NUnit - это простая в использовании библиотека модульного тестирования.

Что касается трассировки или регистрации, вам не нужно засорять ваш код отладочными отпечатками для этого. Попробуйте перехват с Castle Windsor или другими платформами, которые поддерживают AOP.

0 голосов
/ 05 января 2011

Я никогда не использовал Debug.Print или Trace.Print.Я пишу хорошее количество юнит-тестов.Я никогда не обнаруживал, что мне нужно использовать объекты Debug или Trace с написанными мной модульными тестами.Однако я стараюсь проводить как можно больше юнит-тестов.

...