Ответ 1
Не записывать их вообще.
Какова самая распространенная ошибка, которую вы делаете во время написания модульных тестов? Связь? Отсутствие сплоченности? Попробуйте проверить слишком много функций сразу? Не тестировать достаточную функциональность?
Отправьте примерный код, если у вас есть пример этой ошибки.
Не записывать их вообще.
Тестирование слишком много в одном тесте. Мои модульные тесты часто принимают более характер интеграционных тестов, не ограничиваясь тестируемым методом.
Тестируемый код, который присутствует, а не код, который должен присутствовать.
Я стараюсь проверить код, который присутствует при написании модульных тестов. То есть, я напишу серию тестов, которые имеют исключительно высокий охват и тестируют большую часть кода, который присутствует, но пропускают основные условия ошибки, не охватываемые кодом.
Написание тестов, которые слишком связаны с кодом, который они тестируют. Это особенно верно, когда я полагаюсь на семантическую связь и вещи, которые, как я полагаю, работают для класса.
Опираясь на некоторые детали реализации, которые не являются частью тестируемой функциональности и которые могут измениться позже в разработке.
Иногда эти предположения слишком сложны для того, чтобы учитывать или быть слишком запретительными, чтобы принимать во внимание и быть переменными.
Отсутствие покрытия - я редко проверяю все случаи, которые я должен был выполнить на своем первом проходе.
Забыв положить в округление ошибку при двойном сравнении, вероятно, моя самая большая и самая неприятная ошибка.
Тестирование с использованием только некоторых случайных значений вместо включения тестирования с разделением эквивалентности и анализом граничных значений.
Не записывать их в первую очередь (т.е. не переходить на тестовый маршрут)
Создание двух точек интеграции, плотно связанных, не используя макет объекта или рамки.
Не дотягивать тестовые светильники до аккуратного и аккуратного - так что писать тесты сложнее, чем должно быть.
Написание тестов, которые не являются ни модульными испытаниями (тестирование только определенного метода), ни приемочными испытаниями (тестирование с точки зрения пользователя).
Я нахожу, что тесты, которые тестируют 3-4 слоя кода в одном тесте, которые не основаны на концепциях, которые понимают люди, обычно приводят к испытаниям, которые являются обузой для поддержания и заставить людей разочароваться и отключить автоматическое тестирование,
Оставляя небольшую деталь (например, функция hex-dec, где unit test не имеет в ней букв...)
Ну, я иногда пропускаю, выставляя атрибут [Test] С#, и тест даже не запускается:)
Модульные тесты с частичным покрытием кода.
Тесты преуспевают, поэтому я чувствую себя хорошо. Все работает. Я перехожу к чему-то еще. Оказывается там непроверенный угловой случай.
Тесты, зависящие от причуды ОС, на которой вы оказались, или непреднамеренный побочный эффект предыдущего теста.