JMockit es otro conjunto de herramientas que permite la burla de métodos estáticos (así como los métodos finales, constructores, etc.).
No veo ningún problema con el juicioso uso de métodos estáticos al diseñar una solución de OO.
Por ejemplo, un patrón/idioma que me gusta usar es el fachada estática, particularmente para proporcionar una API más simple y fácil de usar al subsistema de persistencia en una aplicación comercial. En mi opinión, no hay otra solución más elegante que algo como:
List<Person> peopleAboveAge =
find("select p from Person p where p.age >= ?", age);
donde el método find
ha sido importada de forma estática de una clase PersistenceFacade
que define sólo los métodos estáticos, y encapsula cómo obtener la Sesión instancia apropiada/EntityManager. Esta solución es amigable y flexible para las pruebas unitarias. Lo usé en una aplicación comercial que tenía más de 500 entidades persistentes, usando Hibernate. La fachada estática nos ayudó cuando migramos de Hibernate 2 a Hibernate 3, cuando migramos de Oracle a Sybase y luego de regreso a Oracle, y cuando comenzamos a usar las anotaciones JPA en lugar de los archivos "hbm.xml" para la asignación de ORM.
Consulte la pregunta relacionada [Cómo simular con métodos estáticos] (http://stackoverflow.com/questions/153048/how-to-mock-with-static-methods). – flicken