Я только что начал новый проект, и теперь, когда ASP.NET MVC разрабатывается чрезвычайно сложным способом, я подумал, что сейчас самое время начать с модульного тестирования.Большая часть моего кода свежая, и я пишу тесты до того, как напишу реальный производственный код.
Однако мое разочарование заключается в том, что я трачу гораздо больше времени на исправление ошибок в своих тестах, чем начто-то не так с моими производственными тестами.
Мой типичный рабочий процесс заканчивается примерно так:
- Написать заглушку
- Написать тест
- Убедитесь, что тест не пройден
- Заполните заглушку
- Тест все равно не пройден, поэтому потратьте некоторое время, просматривая ожидаемый и фактический результат.
- Ошибка оказываетсябыть в тесте, а не фактический код.Исправьте тест.
Если подумать, этого можно ожидать: модульные тесты предполагают выдачу результатов вручную и поэтому подвержены ошибкам;код, написанный на строгом языке и с хорошими практиками кодирования, имеет поведение, которое задается очень автоматически.
Конечно, бывают странные случаи, когда мой производственный код является реальной причиной неудачи теста, но это простосравнительно редко.
Нет никаких причин полностью исключать юнит-тесты;Иногда я просто не доверяю своему собственному коду.С другой стороны, я начинаю чувствовать, что это не так уж и ценно, особенно философия, основанная на тестах.
Кто-нибудь еще так чувствует?