La respuesta a la pregunta es, en mi opinión, "Object Oriented parece ser todo lo que la gente de TDD piensa".
¿Por qué? No lo sé. Quizás todos son programadores de Java que han sido infectados con la enfermedad de hacer que todo dependa de seis capas de indirección, inyección de dependencia y adaptadores de interfaz.
Los programadores de Java parecen querer hacer que todo sea difícil por adelantado para "ahorrar tiempo después".
Aconsejo aplicar algunos principios Agile a su TDD: Si no está causando un problema, no lo solucione. No más de diseño.
En la práctica, me parece que si los métodos estáticos se prueban bien primero, entonces no van a ser la causa de errores en sus llamadores.
Si los métodos estáticos se ejecutan rápidamente, entonces no es necesario un simulacro.
Si los métodos estáticos funcionan con cosas externas al programa, entonces es posible que necesite un método simulado. En este caso, necesitaría poder simular muchos tipos diferentes de comportamiento de funciones.
Si necesita simular un método estático, recuerde que hay formas de hacerlo fuera de de programación OO.
Por ejemplo, puede escribir scripts para procesar su código fuente en un formulario de prueba que llame a su función de simulacro.Puede vincular diferentes archivos de objeto que tienen diferentes versiones de la función en los programas de prueba. Puede usar trucos de enlazadores para anular la definición de la función (si no se insertó). Estoy seguro de que hay algunos trucos más que no he enumerado aquí.
Creo que el término que está buscando porque está estrechamente unido. –
@Martin: Gracias, conozco el término, aunque es más general de lo que estaba viendo aquí. Los términos comúnmente usados a menudo terminan por perder su significado porque las personas (ab) los usan tanto, así que elegí usar una metáfora aquí con la esperanza de que sería más claro. –
Audición por primera vez "cableada" en lugar de estrechamente acoplada. Es absolutamente brillante cómo un cambio en los términos puede ayudar a la comprensión. – jrahhali