Ответ на заданный вопрос, по-моему, «Объектно-ориентированный, похоже, все, о чем думают люди TDD».
Почему? Я не знаю. Возможно, это все программисты на Java, которые были заражены болезнью за счет того, что все полагается на шесть слоев косвенности, инъекции зависимостей и интерфейсные адаптеры.
Java-программисты, похоже, любят все усложнять, чтобы «сэкономить время позже».
Советуем применить к вашему TDD некоторые гибкие принципы: если это не вызывает проблемы, тогда не исправляйте это. Не над дизайном.
На практике я нахожу, что если статические методы хорошо тестируются, то они не будут причиной ошибок в их вызывающих.
Если статические методы выполняются быстро, то им не нужен макет.
Если статические методы работают с материалами снаружи программы, тогда вам может понадобиться макет. В этом случае вам нужно будет смоделировать много разных видов поведения функций.
Если вам нужно издеваться над статическим методом, помните, что есть способы сделать это снаружи программирования OO.
Например, вы можете писать сценарии для обработки исходного кода в тестовую форму, которая вызывает функцию макета.Вы можете связать различные объектные файлы, которые имеют разные версии функции в тестовых программах. Вы можете использовать уловки-линкера, чтобы переопределить определение функции (если оно не получилось вложенным). Я уверен, что есть еще несколько трюков, которые я не перечислял здесь.
Я думаю, что термин вы ищете для плотно соединены. –
@Martin: Спасибо, я знаю этот термин, хотя он более общий, чем то, что я получаю здесь. Обычно используемые термины часто теряют смысл, потому что люди (ab) используют их так много, поэтому я предпочел использовать метафору здесь, надеясь, что это станет более ясным. –
Первый раз слышится «жесткий провод» вместо плотно соединенного. Совершенно блестяще, как изменение условий может помочь в понимании. – jrahhali