Unit Test. Кто использует?
Зависит от того, что заглушать и где. Статическую функцию или созданный в коде объект заглушкой, без изменений, не закроешь.
Нет, есть конечно фреймворки, которые способны заглушать статические функции (Ошеров о них пишет), но там тоже есть обратная сторона.
Но это все детали. Мне в TDD понравилось то, что ты должен сначала задуматься о том, чего ты хочешь достичь.
Мы как-то с коллегой экспериментировали с 4 eyes principle и TDD. Получилось очень интересно. Во-первых, оказалось, что тестировать надо гораздо меньше, чем коллега изначально хотел тестировать. Во-вторых, тесты оказались гораздо проще, чем он предполагал. И в-третьих, тестировали совсем не то, что он изначально хотел тестировать :)
У него была типичная клиент-серверная задача. Сервер делал какую-то работу и отправлял клиенту в виде XML. И вот коллега все время пытался протестировать результат на стороне клиента :) Я несколько раз спрашивал у него, почему он считает, что данные могут неправильно сериализоваться :) или почему они могут неправильно передаться. И если он не довеяет этим модулям, то почему бы не протестировать их работу отдельными тестами.
Ну а споры о том, надо ли тестировать WPF у нас возникают с интервалами в 2-3 недели :)