Pregunta

A pesar de que he programado con Java durante aproximadamente 3 años + ahora (no día a día, pero al menos yo entiendo los fundamentos), en realidad no han entrado en el campo de las pruebas unitarias ...

Mi trabajo es ahora más orientada Pruebas / Análisis de problemas, así que por cierto una buena Java Marco de pruebas unitarias será muy útil para este papel.

Es evidente que no existe una regla formal de qué marco para ir con mi equipo. Así que sólo me preguntaba, como un principiante, que marco es una buena para empezar a trabajar rápidamente?

Junit?

TestNG?

o algo más?

Editar: parece JUnit ha más libros impresos como referencias en comparación con TestNG en Amazon. Pero no sé que su popularidad / tendencia en la industria de Java como por ahora.

¿Fue útil?

Solución

Soy el creador de TestNG y autor del libro "Prueba de próxima generación", por lo que aquí hay algunos (obviamente sesgada) pensamientos.

Para funcional (o al final de / integración / sistema final, cualquier término que se prefiere) de prueba, ofertas TestNG algunas características que JUnit no tiene y que los usuarios han encontrado muy útil:

  • Grupos. Una vez que haya recopilado sus pruebas, puede simplemente pedir a TestNG para ejecutar todas las pruebas de "front-end", o "rápida", "lento", "base de datos", etc ...

  • Soporte para la prueba multiproceso. Esto tiene dos significados diferentes:

1) Se puede decir TestNG a ejecutar todas las pruebas simultáneamente en grupos de subprocesos que se defina (un cambio de línea en un archivo XML). Esto es muy configurable de modo que las pruebas de que no están multiproceso todavía se pueden ejecutar en hilos individuales.

2) Usted puede decir TestNG para invocar sus métodos de prueba n veces a partir de hilos p. Esto le da una buena idea de qué tan seguro de rosca del código que se está probando es.

  • dependencias de prueba y ordenación determinista. Esto es muy útil para las pruebas de integración, donde es muy común ver a los métodos de prueba que necesitan métodos de ensayo anteriores para tener éxito antes de que puedan funcionar. TestNG es muy popular en la comunidad de selenio por esta razón específica ( "no se molestan en probar esta página de mi sitio web si la prueba de acceso fallido").

Otra ventaja inmediata de las dependencias de la prueba es que TestNG puede decir "1 método falló, 99 métodos omiten", que es un resultado mucho más preciso que "100 métodos fallaron".

TestNG tiene muchas, muchas más características y estoy feliz de responder a las preguntas aquí o en nuestra lista de correo ( http://groups.google.com/group/testng-users ).

Otros consejos

Yo aprendería TestNG con Unitils . Cubierto todas mis necesidades todo el tiempo. Añadir XMLUnit y DBUnit y que debe ser resuelta por un largo tiempo.

Para ser perfectamente honesto, JUnit es la forma más popular que TestNG, al menos aquí donde trabajo y vivo. Sé que esto puede ser un argumento extraño, pero si yo fuera usted me escanear a través de algún trabajo añade a ver cuál es el marco que hace la industria en su área a favor / país (por ejemplo, voy a JUnit debido a eso, quiero decir seguro que podría aprender TestNG, podría llegar a ser mejor, pero lo que bien le haría a mí si todos los empleadores requieren conocimientos JUnit?).

A pesar de que puede parecer ser un criterio pequeña, todas las cosas siendo iguales, parece que las tendencias de empleo en gran medida favorecerá JUnit.

http://www.indeed.com/jobtrends?q= TestNG% 2C + JUnit & l =

Los dos hacen su trabajo igual de bien, así que no hay bien o mal. Se puede utilizar tanto en combinación con numerosos marcos de apoyo ayuda a su desarrollo.

Si necesita trabajo para un cliente, se puede aprender el que se espera que el uso. Si no es así, la mejor idea es tratar a ambos y averiguar lo que funciona mejor para usted.

Yo he usado tanto y se encontró que para la unidad de prueba solamente jUnit funciona muy bien, pero en términos de sistema de pruebas que recomendaría TestNG. TestNG ofrece algunas características adicionales (como la prueba paramétrica) y es muy flexible. Por ejemplo, en una prueba no jUnit en una suite por lo general significa que tiene que volver a ejecutar todo el conjunto, pero en TestNG simplemente puede volver a ejecutar la prueba de que ha fallado. Aquí está un muy buen artículo que resume ambos (es un poco sesgada hacia TestNG sin embargo)

http://www.ibm.com/developerworks /java/library/j-cq08296/index.html

JUnit está muy bien soportado en muchos discos IDE de Eclipse que incluye, y JUnit 4 con anotaciones es bastante agradable trabajar con él.

A menos que tenga necesidades específicas y luego ir para la ayuda de la herramienta, es decir, jUnit.

TestNG con Unitils es realmente grande. Cubre casi todos los requisitos. Unitils mucho apoyo de utilidades aseveración, Spring, Hibernate, marcos burlones, dbUtils etc.

Para mí, es sólo una cuestión de gusto. He usado personnaly jUnit al día durante más de 5 años y estoy muy contento con él, especialmente con la última versión y su característica @Rule que impide que mi equipo desde escribiendo el mismo código una y otra vez. Se integra bien con todas las herramientas que uso diario: IDE, construcción, integración continua ...

Junit es famoso y mejores herramientas de prueba de unidad, creo que tú y yo ambos sabemos Junit es tan tan importante que el desarrollador de Java cambia su patrón de codificación como la contribución junit, usted puede aprender algunas Junit como tecnología básica prueba de la unidad, así como aprender TestNG como segunda tecnología de prueba unidad.

En el siguiente enlace puede que sea útil para usted! http://www.javarmi.com / 2010/08 / junit-4-tutorial-y-ejemplo-get-inicio /

Junit es el mejor lugar para empezar. 4.x Junit tiene muchas características avanzadas tales como anotaciones, etc, así su apoyo a obtener buenos marcos populares como la primavera.

Me gustaría ir a JUnit.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top