2010-03-01 14 views
18

Puede explicar en unas pocas frases:Pruebas unitarias en Java, ¿qué es eso?

  1. por qué la necesitamos/por eso que hacen nuestra vida más fácil?
  2. ¿Cómo realizar una prueba unitaria [ejemplo simple en Java]?
  3. ¿Cuándo no los necesitamos/tipos de proyectos podemos dejar afuera las pruebas de unidades?
  4. enlaces útiles

Respuesta

13

¿Por qué lo necesitamos/por qué nos hacen la vida más fácil?

  • Se le permite comprobar el comportamiento esperado de la pieza (s) de código que está probando, que actúa como un contrato que debe satisfacer.
  • También le permite volver a factorizar el código de forma segura sin romper la funcionalidad (contrato) del mismo.
  • Le permite asegurarse de que las correcciones de errores permanecen corregidas mediante la implementación de una prueba de Unidad después de corregir un error.
  • Puede servir como una forma de escribir un código desacoplado (si tiene en mente las pruebas al escribir su código).

Cómo realizar una prueba unitaria [ejemplo simple en Java]?

Consulte el sitio web JUnit y el JUnit cookbook para obtener más información. No hay mucho para escribir casos de prueba JUnit. De hecho, encontrar buenos casos de prueba es seguramente más difícil que la implementación real.

¿Cuándo no los necesitamos/tipos de proyectos podemos dejar la prueba de la unidad a cabo?

No intente probar todos los métodos de una clase, sino concentrarse en probar la funcionalidad de una clase. Frijoles, por ejemplo, no escribirás pruebas para los getters y setters ...

Enlaces

JUnit - Prueba de la unidad

EclEmma - Prueba de herramienta de cobertura

link text - Wikipedia enlace a la unidad de pruebas

13
  1. Porque esa es la prueba de que la aplicación realmente funciona según lo previsto. También encontrarás errores de regresión mucho más fáciles. Las pruebas se vuelven más fáciles, ya que no tiene que pasar manualmente por todos los estados posibles de la aplicación. Y, finalmente, es muy probable que encuentre errores que ni siquiera sabía que existían aunque haya probado su código manualmente.

  2. Google para junit

  3. Las pruebas unitarias deben hacerse siempre, como se ha dicho, es la prueba de que la aplicación funciona según lo previsto. Algunas cosas no pueden o pueden ser difíciles de probar, por ejemplo, una interfaz gráfica de usuario. Esto no significa que la GUI no deba ser probada, solo significa que debe usar otras herramientas para ello.

  4. Véase el punto 2.

+4

'es la prueba de que la aplicación funciona según lo previsto'. Esto es un malentendido muy común. Todo lo que prueban es que una 'unidad' en particular funciona según lo previsto (no la aplicación). Al integrar muchas unidades todavía hay margen para errores de integración donde el comportamiento en varias unidades no es el esperado a pesar de que las unidades individuales tienen un 100% de éxito. Eso no quiere decir que las pruebas unitarias no sean increíblemente útiles en sí mismas. – Dolbz

+2

buena respuesta a excepción de "google it" – EugeneP

+1

Si va a pasar a las pruebas unitarias, también vale la pena mirar marcos de burla. Usar junit es solo una parte de la ecuación, a menudo querrás predeterminar/emular el comportamiento de ciertas clases para la prueba, p. para una prueba en una clase que normalmente habla con un servicio web, puede burlarse del servicio web para devolver los resultados que desea, en lugar de realizar una llamada real a un servidor web. Vea esta pregunta: http://stackoverflow.com/questions/22697/whats-the-best-mock-framework-for-java y http://mockito.org/ para Mockito, un buen marco burlón. – Mike

2

Es probable que el trabajo de leer el artículo de Wikipedia sobre Unit Testing, ya que esto responder a la mayoría de sus preguntas acerca de por qué . El sitio web JUnit tiene recursos para escribir una prueba de la unidad Java, de los cuales el Junit Cookbook probablemente sea su primera parada.

Personalmente, escribo pruebas unitarias para probar el contrato de un método, es decir, la documentación para una función en particular. De esta manera, ingresará en un ciclo para aumentar la cobertura de su prueba y mejorar la documentación. Sin embargo, usted debe tratar de evitar los ensayos: Código

  • de otras personas, incluyendo el JDK
  • código no determinista, como java.util.Random

JUnit no es la única prueba de la unidad marco disponible para Java, por lo que debe evaluar otros marcos como TestNG antes de sumergirse en él.

Además de los marcos "de alto nivel", también puede encontrar algunos proyectos bastante cubren áreas específicas, tales como:

+0

Creo que es importante tener en cuenta que, técnicamente, una prueba unitaria determina si una pequeña parte (una unidad) de un programa funciona correctamente. De lo que habla todo el mundo aquí, y el uso moderno habitual, es una prueba unitaria automatizada, que se ejecuta como parte de una compilación o bajo demanda. – Jason

2

Lo que yo he escrito ya está cubierto en muchas de las respuestas aquí, pero pensé que me gustaría añadir esta ...

El mejor artículo que he leído sobre cuándo utilizar/no las pruebas unitarias de uso estaban en Steve Sanderson's blog. Es un excelente artículo que cubre el costo/beneficio de las pruebas unitarias en diferentes partes de su código base (es decir, un argumento convincente contra la cobertura del 100%)

+0

@Dolbz Lo comprobaré. Gracias. – EugeneP

1

Ésta es la forma en cómo su programación debe ser:

  • Decidir sobre una interfaz (no necesariamente una interfaz Java, pero ¿cómo método se parece a todo el mundo
  • escribir una prueba
  • Código de la aplicación
0

como su nombre lo muestra, es la prueba de nuestras unidades en nuestro programa. Por ejemplo, si tiene un método que devuelve la suma de dos enteros, lo probará con dos números para ver si funciona correctamente. Por ejemplo, para 2 + 2, devuelve 4.

Necesitamos estas pruebas, ya que en los proyectos grandes, hay muchos programadores. Es importante que estos programadores trabajen en armonía. las pruebas unitarias actúan como la prueba de corrección de los procedimientos que nuestros programadores escriben. Entonces, un programador escribe su procedimiento más su prueba unitaria para mostrar que su procedimiento funciona correctamente. Luego, él compromete sus cambios al proyecto. Estas pruebas lo ayudan a prevenir una gran cantidad de errores antes de que ocurra.

Tengo un procedimiento paso a paso como ejemplo, para anotar una prueba de unidad Java en Eclipse. Por favor, mira "How To Write Unite Tests".

Espero que ayude.