Длинный код, который настраивает тест. Если вы тратите более ста строчек кода для того, чтобы создать объект для одного ассерта, это говорит о том, что здесь что-то не так. Данный объект слишком огромен и он нуждается в дроблении на более мелкие.
Дублирование настройки кода. Если вы не можете найти легко общее место для общей настройки кода, значит слишком много объектов сильно связаны между собой.
Долго выполняющиеся тесты. TDD тесты которые выполняются слишком долго не могут часто запускаться и часто не запускаются вообще, или совсем не работают. Такие тесты нам говорят о том, что тестирование некоторой части нашего приложения слишком сложно. Это проблемы дизайна и мы должны обратить внимание на дизайн такой части приложения.
Хрупкие тесты. Тесты, которые неожиданно ломаются, показывают, что одна часть приложения удивительно влияет на другую часть. Вы должны проектировать дизайн до тех пор, пока эффект на расстоянии не будет устранен, убрав связанность или объединив эти две части в одну.