Iniciar un nuevo proyecto con EJB 3/JPA, principalmente beans de sesión sin estado y trabajos por lotes. He usado JUnit en el pasado en aplicaciones estándar de Java y parecía funcionar bastante bien. En las pruebas EJB2 de la unidad era un problema y se requiere un contenedor en ejecución como JBoss para hacer las llamadas. Ahora que vamos a trabajar en EJB3/JPA, me gustaría saber qué compañías están usando para escribir y ejecutar estas pruebas. ¿Siguen considerándose Junit y JMock relevantes o hay otros marcos más nuevos que hayan surgido que deberíamos investigar?Mejor marco actual para pruebas unitarias EJB3/JPA
Respuesta
en mi humilde opinión, sí, siguen siendo relevantes.
Con EJB3, puede probar EJB como POJO normal o como bean administrado utilizando un contenedor EJB incrustado.
Lo mismo para JPA, puede incrustar una implementación JPA para su prueba y utilizar una base de datos en memoria, o puede simular completamente la capa de datos.
Para mi último proyecto EJB escribí un poco de glue code para probar el EJB porque el contenedor EJB incrustado no era lo suficientemente maduro, pero ahora iría por un contenedor integrado EJB + JUnit.
Unos recursos
- Blog post: How to unit test EJB 3 in 0.8 seconds
- SO pregunta: Good unit testing resource for EJB
Pero hay muchos otros fácilmente fáciles de encontrar
Para pruebas unitarias, puede utilizar JUnit, TestNG y su marco favorito de burla (EasyMock, Mockito, PowerMock, JMockit, JMock).
Para prueba de integración, puede iniciar/detener un contenedor incrustable (JBoss, OpenEJB, GlassFish v3) de sus pruebas. O bien, echar un vistazo a Arquillian, un nuevo jugador muy reciente para las pruebas de integración de aplicaciones Java EE:
La misión del proyecto Arquillian es proporcionar un instrumento de prueba simple que los desarrolladores pueden utilizar para producir una amplia gama de pruebas de integración para sus aplicaciones Java (aplicaciones empresariales más probables). Se puede ejecutar un caso de prueba dentro del contenedor, desplegado junto con el código bajo prueba o coordinando con el contenedor, actuando como un cliente para el código desplegado. Para evitar introducir una complejidad innecesaria en el entorno de desarrollo del desarrollador, Arquillian se integra de forma transparente con marcos de prueba familiares (ej. JUnit 4, TestNG 5), permitiendo el lanzamiento de pruebas utilizando los complementos de prueba IDE, Ant y Maven. .
también comprobar Improving the Testability of Java EE With Arquillian 1.0.0 Alpha 1 Released y el espacio Arquillan. Parece interesante IMO.
Una opción es también usar Spring, pero por supuesto su arquitectura también estará basada en Spring en el tiempo de ejecución. La razón por la que me gusta la primavera es que es fácil de inyectar lo que se necesitan datos y objetos cada vez simuladas durante la fase de prueba como se puede anotar en el caso de prueba JUnit qué archivo contexto de usar:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:test-context.xml"})
public class MyClassTest {
@Autowired
private MyClass myClass;
@Test
public void testMyMethod() {....}
Pero si Don No quiero usar Spring de todos modos, entonces esto es bastante irrelevante :) Por otro lado, es muy fácil cambiar de Spring luego.
Sugeriría Arquillian. Con Arquillian tiene las opciones para probar EJB normales o beans CDI. Podría ejecutar su prueba contra un contenedor EE encastrado, administrado o remoto. El proyecto Arquillian se mantiene continuamente ...
Sin embargo, no siempre es tan fácil hacer su primera prueba arquillian. Es posible que tenga problemas para encontrar las dependencias para la versión arquillian correcta y la versión del contenedor. He publicado una serie de tutoriales sobre esto. Pero para no hacerme sospechar de promocionar, el enlace no se publica aquí. Si lo desea, puede google "Tutorial EJB3 Prueba de integración con Arquillian part1".
- 1. ¿El mejor marco de pruebas unitarias para Clojure?
- 2. Marco de pruebas unitarias para MATLAB
- 3. marco de pruebas unitarias para C
- 4. Mejor práctica: Organizar pruebas unitarias
- 5. Marco de pruebas unitarias para bases de datos
- 6. Mejor práctica para organizar pruebas de selenio y pruebas unitarias
- 7. manipular la hora actual en pruebas unitarias?
- 8. Pruebas unitarias para malloc()
- 9. ¿Hay algún buen marco de pruebas unitarias para Ada?
- 10. ¿Existe un marco de pruebas unitarias para GNU?
- 11. Pruebas unitarias: cómo hacerlo?
- 12. Pruebas unitarias para PL/SQL
- 13. ¿Pruebas unitarias para procesos estocásticos?
- 14. Pruebas unitarias en Python
- 15. Pruebas unitarias en C++
- 16. Pruebas unitarias en C++
- 17. Pruebas unitarias y pruebas funcionales en CodeIgniter
- 18. Pruebas unitarias con ServiceLocator
- 19. Pruebas unitarias DAO
- 20. pruebas unitarias para raspar pantallas?
- 21. Pruebas unitarias para salida HTML?
- 22. SpecFlow/BDD para pruebas unitarias?
- 23. Qué pruebas unitarias en PHP para comenzar
- 24. Pruebas unitarias con singletons
- 25. Pruebas unitarias Clojure sobre la marcha en un marco separado
- 26. Creación de datos falsos para pruebas unitarias
- 27. Pruebas unitarias ... cómo mejorarlo
- 28. Pruebas unitarias XSLT
- 29. marcos de las pruebas unitarias para C
- 30. pruebas unitarias XNA