[Test] JUnit las mejores prácticas


¿Qué es JUnit?
cherami
JUnit es un código abierto del marco de pruebas de Java utilizado para escribir y ejecutar pruebas repetibles.Es un sistema de marco xUnit las pruebas unitarias de una instancia (por el lenguaje Java).Incluye las siguientes características:
1, para probar los resultados esperados de la aserción (afirmación)
2, para compartir las herramientas de comprobación de datos común para el examen
3, para la conveniencia de la organización y funcionamiento de las pruebas del banco de pruebas
4, los gráficos y el corredor de prueba de texto
JUnit fue desarrollado originalmente por Erich Gamma (GoF uno) y Kent Beck (XP y uno de los pioneros refactorizar) preparado.
Cabe señalar que junit se utiliza generalmente para las pruebas unitarias, y por lo tanto necesidad de comprender la estructura interna del código que se está probado (pruebas de caja blanca llamada), la otra es la programación xp junit y refactorización (refactorizar) se recomienda encarecidamenteherramientas, las pruebas unitarias automáticas porque las circunstancias pueden aumentar la eficiencia del desarrollo, pero en realidad está escribiendo el código de prueba lleva mucho tiempo y esfuerzo, los beneficios de la utilización de este material ¿Dónde está?Creo que es la siguiente:
1, para la programación de xp, pide que las pruebas por escrito antes de escribir código, que puede obligar a pensar bien antes de escribir el código en el código (métodos) de la función y la lógica, o escribir el código es inestable, entonces usted necesita, mientras que el mantenimiento de lacódigo de prueba y el código real, esta carga de trabajo aumentará significativamente.Por lo tanto, en la programación de Windows XP, el proceso básico es el siguiente: la idea - "escribir código de prueba -" para escribir código - "prueba y las pruebas de escritura y el código de la escritura son incrementales, y escribir una pequeña prueba que el código en la preparación de los futurosSi se encuentran problemas más bloques se puede remontar al problema, reducir la dificultad de corregir el error devuelto
2, para la reconstrucción, sus beneficios y la programación XP es similar, ya que la reconstrucción es también necesaria para cambiar una medida, menos tiempo debido a devolver errores.
3, por falta de estas dos situaciones, cuando desarrollamos el uso apropiado de la prueba de escritura junit es necesario, porque la prueba general también tenemos que escribir código, usted no puede usar el junit original, si está utilizando junit, sino también contrainterfaz (métodos) para preparar el código de prueba se reducirá el trabajo de mantenimiento futuro, tales como cambios en el método después (esto es equivalente a los trabajos de reconstrucción.)El otro es porque hay junit afirmaciones, si los resultados de la prueba no pasa la prueba nos dirá que no pasa, por qué, y si la práctica general anterior es escribir algo de código de prueba es mirar a su producción y, a continuación para determinar por sí mismos los resultados de la utilización de la correctautilizando junit ventaja es que este resultado es correcto para juzgar al completo, sólo tenemos que mirar que el derecho de decirnos si los resultados pueden, en general, mejorará considerablemente la eficiencia.
JUnit Introducción
Para cherami
Instalación de JUnit
La instalación es muy simple, en primer lugar la siguiente dirección para descargar un paquete postal nueva:
http://download.sourceforge.net/junit/
Una vez descargado, extraer a su directorio favorito, el supuesto es JUNIT_HOME, a continuación, JUNIT_HOME junit.jar bajo el paquete añadido a su sistema variable de entorno CLASSPATH, para el entorno IDE, la necesidad de un mayor uso del proyecto junitlib, sus diferentes configuraciones IDE tienen una configuración diferente, donde no hay mucho que decir.
Cómo utilizar JUnit para escribir ensayos?
El ejemplo más sencillo:
1, crear una subclase de TestCase:
junitfaq paquete;
importación java.util .*;
importación junit.framework .*;
public class SimpleTest extiende TestCase {
pública SimpleTest (String nombre) {
super (nombre);
}
2, escriba un método de prueba valer los resultados esperados:
testEmptyCollection public void () {
colección Colección = new ArrayList ();
assertTrue (collection.isEmpty ());
}
Nota: enfoque JUnit prueba se recomienda como el principio del método a probar, de modo que estos métodos pueden ser encontrados por las pruebas de forma automática.
3, escribir una suite () método, que utiliza la reflexión para crear dinámicamente un método que contiene toda la serie de pruebas testXxxx:
suite estáticos públicos de prueba () {
nuevo retorno TestSuite (SimpleTest.class);
}
4, escribir un método main () para ejecutar el dispositivo en modo texto para facilitar el funcionamiento de la prueba:
public static void main (String args []) {
junit.textui.TestRunner.run (suite ());
}
}
5, a ejecutar la prueba:
Ejecutar en modo de texto:
java junitfaq.SimpleTest
A través de los resultados de la prueba son:
.
Tiempo: 0
Aceptar (un análisis)
Tiempo dijo que la prueba sobre el número de pequeños puntos, y si las pruebas muestran en Aceptar.De lo contrario, el pequeño punto detrás de la F marcados, indica que la prueba ha fallado.
Cada uno de los resultados de la prueba debería estar bien, así que para explicar la prueba es satisfactoria, si no tiene éxito la información de inmediato, siga las instrucciones revisadas.
informe JUnit prueba si no tiene éxito, se debe distinguir entre fallos (errores) y errores (errores).El fracaso es el código en el método falla debido a afirmar, y el error es causado por el código anormales, tales como ArrayIndexOutOfBoundsException.
Gráficamente ejecutar:
java junitfaq.SimpleTest junit.swingui.TestRunner
Los resultados de las pruebas a través de la interfaz gráfica de la barra verde en parte.
Se trata de la muestra más simple, la prueba real, probamos la función de una clase a menudo es necesario realizar algunas operaciones comunes, después de la finalización de la destrucción de los recursos necesarios (tales como conexiones de red, las conexiones de base de datos, cierre los archivos abiertosetc), la clase TestCase nos proporciona un método de montaje y desmontaje métodos, el método de configuración para probar el contenido en la elaboración del método de la subclase TestCase antes de cada testXxxx se ejecutará, y los métodos tearDown de contenido después del final de cada método se ejecutará testXxxx.El código de inicialización para compartir, solamente, sino que también elimina el potencial de interacción entre cada código de prueba.
JUnit las mejores prácticas
Martin Fowler, dijo: "Cuando se intenta imprimir algo de información o la depuración de una expresión, escribir código de prueba para sustituir a los métodos tradicionales." Al principio, usted encontrará que uno siempre quiere crear algunos muebles nuevos, y probar elprogramación parece más lento.Poco después, sin embargo, usted encontrará que usted repite el mismo mobiliario, y la nueva prueba es por lo general sólo incluye la adición de un nuevo método de prueba.
Usted puede escribir una gran cantidad de código de prueba, pero pronto descubre que prevé sólo una pequeña parte de la prueba es realmente útil.Es necesario poner a prueba es la prueba de que no, que usted piensa que no dejará de esas pruebas, o crees que debe fallar en la prueba de éxito.
Como mencionamos anteriormente las pruebas es un proceso sin interrupciones.Una vez que haya una prueba, debe asegurarse de que su trabajo ha sido poner a prueba su trabajo mediante la adición de un nuevo código.No haga funcionar todos los días o el último día de entrenamientos, se debe ejecutar el código de prueba.Esta inversión es muy pequeña, pero puede trabajar para asegurarse de que obtener el código confiable.Reducir la tasa de repetición del trabajo, usted tendrá más tiempo para escribir el código de trabajo.
No creo que la presión, no escribir código de prueba.En su lugar escribir código de prueba gradualmente reducir el estrés, debe ser probado por la escritura de código, usted tiene el comportamiento exacto de la comprensión de la clase.Usted será más rápido para escribir código para que funcione de manera eficiente.
Éstos son algunos de competencias específicas en la escritura de código de prueba o las buenas prácticas:
1. No utilice el constructor inicializa TestCase muebles, sino más bien utilizar la configuración () y tearDown () método.
2. No confíe en o asumir que el orden de pruebas de funcionamiento, debido a que el método de prueba JUnit con Vector salvo.Así que las diferentes plataformas estarán en un orden diferente, quitar de los métodos de ensayo de vectores.
3. Para evitar los efectos secundarios de la preparación de un TestCase.Por ejemplo: Si las pruebas posteriores depende de los datos de transacciones específicas, no presenta datos de la transacción.simplemente rodará en él.
4. Al heredar una clase de prueba, no olvide llamar a la superclase setUp () y tearDown () método.
5. Pondrá a prueba el código y el código de trabajar juntos, al mismo tiempo de compilación y actualización.(Uso de la hormiga junit tuvo que apoyar la tarea.)
6. Las clases de prueba y métodos de ensayo deben tener un esquema de nomenclatura coherente.Si el nombre de la clase de trabajo con la prueba para formar el nombre de la clase de prueba.
7. Para asegurarse de que la prueba es independiente del tiempo, no se basan en datos obsoletos utilizados para los ensayos.Resultó en el mantenimiento posterior del proceso es difícil de reproducir la prueba.
8. Si usted está escribiendo software para el mercado internacional, la preparación de la prueba para tener en cuenta cuando los factores internacionales.Nativo de configuración regional, no sólo para la prueba.
9. En la medida de lo posible para proporcionar el uso de JUnit para hacer valer / no y el método de control de excepciones puede hacer que el código sea más conciso.
10. La prueba para ser tan pequeño como sea posible, la aplicación de la velocidad.
Combinación de JUnit y la hormiga
cherami Enlaces
hormiga tiene dos objetivos: junit y junitreport
Ejecutar todos los casos de prueba, y generar informes en formato HTML
Para hacer lo siguiente:
1. ANT_HOMElib directorio en el junit.jar
2. Modificar build.xml, agregue lo siguiente:
name="report" propiedad value="report" target / name="junitreport" depends="clean, compile" junit printsummary = "on" tenedor = "verdadero "haltonfailure =" false "failureproperty =" tests.failed "showoutput =" true " classpath refid="myclasspath"/ formatter type="xml"/ batchtest todir = "$ {} informe" fileset dir="${build}" include name="**/*Test.*"/ /conjunto de archivos / batchtest / junit todir="${report}" junitreport fileset dir="${report}" incluir el nombre = "TEST-*. xml "/ / conjunto de archivos report format="frames" todir="${report}"/ / junitreport fallar si =" tests.failed "; --------------------------------------------------------- Una o varias pruebas fallidas, visita el informe de los detalles ... --------------------------------------------------------- / error / target
Ejecutar esta meta, la hormiga se ejecutará cada TestCase
Directorio en el informe hay una gran cantidad de TEST *. xml y algunas páginas
Abra el index.html de la guía informe se puede ver una prueba muy intuitiva informes de ejecución de un vistazo.