He leído la mayoría de las preguntas relacionadas con SO (here, here y there). La última pregunta propone cuatro alternativas para crear un código que haga que los métodos estáticos sean comprobables por unidad. Quiero preguntar sobre mi caso particular: tenemos un proyecto de "capa de lógica de negocios" o "reglas" que contiene 45 clases estáticas (sin estado, solo métodos estáticos). Además, no son fácilmente comprobables por sí mismos: la mayoría accede a la base de datos y al sistema de archivos. No es tan malo, de todos modos: para acceder a la base de datos, usan la instancia única de alguna clase de Mapper (todos los Mappers son Singleton). Cada vez que intento probar la unidad de algo, me tropiezo con esta pared. El mayor problema es que este es un código muy, muy importante, y los cambios deben planearse con mucho cuidado. Mi pregunta: ¿cómo debo hacer para que esta unidad sea más comprobable? ¿Debo escribir 45 interfaces y usar la inyección de dependencia? Aun así, ¿cómo resisto/simulacro de los Mappers?Código de prueba de unidad que llama a métodos estáticos
PS: He estado leyendo Michael plumas 'Utilización del código de legado', por lo que las referencias directas son bienvenidos (otros libros también :)
Editar: Dado que algunas personas dijeron que las soluciones podrían ser dependiente de la plataforma , Estoy trabajando en .NET (C# y algunos VB.NET)
Suena bien. Eso se encargaría de hacer los métodos estáticos comprobables, pero ¿qué hay del código que los llama? En otra nota, solo curiosidad ... ¿Es "GI" algún tipo de firma, o es un acrónimo? (Soy de Argentina) –
Gl == Buena Suerte :). Para el código que usa Mapper, debe adaptarlo para usar la interfaz de fábrica en lugar de getInstance por singleton. – AlexTheo