Acabo de heredar una aplicación Java y al inspeccionar el código, veo lo que en mi humilde opinión es una bastardización del framework Spring. Usted ve, el equipo de Java parece tener una aversión a las interfaces, por lo que termina con cosas como esta:Primavera como una fábrica glorificada; es esto aceptable?
@Autowired
private SomeConcreteFinalClass _myField;
No hay ninguna configuración de la primavera, sin frijol definido, no hay posibilidad de que puedo probar el objeto que contiene de manera aislada . Esto es esencialmente una fábrica basada en anotaciones con los gastos generales de Spring.
¿Estoy fuera de línea, o es como usar una pistola de elefantes para matar moscas? Solo tengo que comprobar la realidad desde , todos los demás en el equipo piensan que esto es perfectamente aceptable.
Editar En muchos casos, estas fábricas anotadas aparecen en clases de procesamiento complejas que se beneficiarían inmensamente de las pruebas aisladas. El equipo también frunce el ceño ante las pruebas.
No hay misterio aquí, espero. Si tengo una clase concreta, eso no está detrás de una interfaz, y no hay un Spring Bean correspondiente para "configurar" el objeto, entonces es indiscutiblemente una fábrica glorificada que puede implementarse con 10 líneas de código.
El resorte no se usa de ninguna otra forma en el sistema; eso es todo.
Mis objetivos ahora mismo:
- instituir una política de pruebas
- Educar el equipo sobre las virtudes del componente aislamiento
- mover estos campos Autowired detrás de las interfaces
I Supongo que la última pregunta es: ¿hay algún beneficio para mantener estos campos Autocableados si no estamos probando g o de cualquier otra manera utilizando el marco. Igualmente me gustaría new
el objeto si la dependencia es inmutable.
Por supuesto: un arma de elefante es el arma de elección para matar moscas mutantes del tamaño de un elefante –