Запахи мокирования.
Чрезмерное использование моков
Тест настраивает столько мок-объектов и заглушенных взаимодействий, что настройка моков затмевает саму проверку, поэтому тест в итоге испытывает моки, а не реальное поведение.
Тестирование деталей реализации
Тест проверяет то, как код работает изнутри — приватные поля, внутренние вызовы методов, структуру DOM или CSS-классы — вместо наблюдаемого поведения, от которого зависит реальный потребитель.
Переспецифицированный тест
Переспецифицированный тест проверяет гораздо больше, чем требует проверяемое поведение — фиксирует точные строки вывода, полную форму объектов, порядок элементов коллекции или каждый вызов внутреннего сотрудника-зависимости, — поэтому он ломается всякий раз, когда меняется не связанная с ним деталь реализации.