Обратите внимание, что я еще не "видел свет" на TDD и не понял, почему у него есть все преимущества, благовествованные его основными сторонниками. Я не увольняю его - у меня просто есть оговорки, которые, вероятно, рождаются из-за невежества. Поэтому, во что бы то ни стало, смеяться над вопросами ниже, если вы можете исправить меня: -)
Может ли использование TDD быть открытым для непредвиденных побочных эффектов вашей реализации? Концепция "наименьшего количества кода для удовлетворения теста" предполагает думать в самых узких терминах о конкретной проблеме, не задумываясь о большей картине.
Я думаю об объектах, которые удерживают или зависят от состояния (например, значений внутреннего поля). Если у вас есть тесты, которые создают экземпляр объекта изолированно, инициализируйте этот объект и затем вызовите тестируемый метод, как бы вы обнаружили, что другой метод оставил недопустимое состояние, которое отрицательно повлияет на поведение первого метода? Если я правильно понял вопросы, то вы не должны полагаться на порядок выполнения теста.
Другие неудачи, которые я могу себе представить, охватывают не-закрытие потоков, исключение объектов GDI + и т.п.
Является ли это даже проблемным доменом TDD, или если интеграция и системное тестирование ловят такие проблемы?
Спасибо в ожидании....