Red de conocimiento del abogados - Consultar a un abogado - Herramientas de prueba para pruebas unitarias

Herramientas de prueba para pruebas unitarias

Ahora presentemos las herramientas de prueba unitaria, agrupadas por lenguaje de programación. CppUnit

En primer lugar, CppUnit, el creador de las herramientas de prueba unitaria de C++, es un marco de prueba unitario gratuito y de código abierto. Debido a que muchos expertos han escrito muchos buenos artículos sobre CppUnit, Lao Na ya no es feo. Si desea obtener más información sobre CppUnit, le recomiendo que consulte la "Introducción al marco de prueba de CppUnit" de Cpluser. El artículo también proporciona la dirección de descarga de CppUnit.

Prueba de C++

Luego, presente C++Test, que es un producto de Parasoft. C++test es una potente herramienta automatizada de prueba a nivel de unidad de C/C++ que puede probar automáticamente cualquier función y clase de C/C++, generar automáticamente casos de prueba, funciones de controlador de prueba o funciones auxiliares, lo cual es muy fácil y rápido en un entorno automatizado. para lograr una cobertura de prueba del 100% a nivel unitario. El texto en [ ] está citado del sitio web de Huatang Company. Lao Na quería escribir un texto sobre las pruebas de C++, pero descubrió que no podía ir más allá de la introducción en el sitio web de Huatang Company, por lo que se ahorró algunos problemas. Se recomienda a los amigos que quieran saber más sobre las pruebas de C++ que consulten el sitio web de la empresa. La prueba de C ++ está representada por Huatang Company. Si deseas comprar o solicitar presupuesto y versión de prueba, puedes contactar con ellos.

Visual Unit

Por último, se presenta la herramienta de pruebas de unidades domésticas Visual Unit. Se dice que ha solicitado muchas patentes y tiene muchas tecnologías innovadoras, pero a Lao Na solo le importa si es útil y fácil de usar. El código de prueba se genera automáticamente, los casos de prueba funcionales se establecen rápidamente, el comportamiento del programa es claro, la integridad de la prueba es alta, la cobertura de la caja blanca se completa de manera eficiente, la depuración rápida es eficiente y los informes de prueba son detallados. El texto en [] está tomado del sitio web del desarrollador de VU. Los requisitos de prueba mencionados anteriormente: completar pruebas funcionales, cobertura de declaración completa, cobertura de condición, cobertura de sucursal y cobertura de ruta se pueden lograr fácilmente utilizando VU. También vale la pena mencionar que el uso de VU también puede mejorar la eficiencia de la codificación. En términos generales, mientras se completan las pruebas unitarias, el tiempo de codificación y depuración se puede acortar considerablemente. Olvídalo, no quiero hablar más de eso. Todavía estoy interesado en mostrar mis teorías y presentar mi experiencia, porque puede satisfacer mi vanidad de ser un buen profesor, pero la introducción de herramientas es aburrida. Después de todo, no sabré si la herramienta es buena hasta que la pruebe. Será mejor que vaya al sitio web del desarrollador y lo compruebe yo mismo, donde podrá descargar la versión de demostración y el material didáctico de demostración.

gtest

El marco de prueba Gtest se genera para escribir pruebas de C++ en diferentes plataformas (Linux, Mac OS X, Windows, Cygwin, Windows CE y Symbian). Es un marco de prueba basado en la arquitectura xUnit que admite el descubrimiento automático de pruebas, un rico conjunto de aserciones, aserciones definidas por el usuario, pruebas de muerte, fallas fatales y no fatales, pruebas de tipo parametrizado, múltiples opciones para ejecutar pruebas y pruebas XML. informes. Los amigos que necesiten saber más pueden consultar el artículo "Jugar con la serie gtest de Google Unit Test Framework". Junit

JUnit es la herramienta de pruebas unitarias más famosa de la comunidad Java. Nació en 1997 y fue desarrollado por Erich Gamma y Kent Beck. Entre ellos, Erich Gamma es uno de los autores del libro clásico "Patrones de diseño: la base del software orientado a objetos reutilizable" y ha hecho grandes contribuciones a Eclipse. Kent Beck es un experto y pionero de la Programación Extrema (XP). JUnit está diseñado para ser pequeño pero potente. JUnit: marco de pruebas de Java para desarrollar código fuente para escribir y ejecutar pruebas repetibles. Este es un ejemplo de un sistema marco para pruebas xUnit (lenguaje Java). Se utiliza principalmente para pruebas de caja blanca y pruebas de regresión.

Los beneficios de JUnit y los principios de escribir pruebas unitarias de JUnit;

Ventajas: el código de prueba se puede separar del código de producto de una clase y se puede aplicar a la prueba de; otra clase, requiere pocas modificaciones; se integra fácilmente en los procesos de compilación de los evaluadores, y la combinación de JUnit y Ant permite un desarrollo incremental. JUnit es un código fuente abierto y se puede volver a desarrollar. JUnit es fácil de ampliar;

Principios de escritura: simplifique la redacción de pruebas, incluido el aprendizaje del marco de prueba y la escritura de unidades de prueba reales; mantenga la persistencia de la unidad de prueba; puede usar pruebas existentes para escribir pruebas relacionadas;

Ayuda para el uso de JUnit.

Para la versión 1 y junit3.x, generalmente usamos junit 3.8.

(1) Cuando se utiliza junit3.x versión 3.x para pruebas unitarias, la clase de prueba debe heredar de la clase principal TestCase

(2) Los principios que utiliza el método de prueba; debe seguir:

1. Público

b, no válido

c, sin parámetros de método

El nombre del método debe comenzar con prueba.

(3) Los diferentes casos de prueba deben ser completamente independientes y no pueden estar relacionados de ninguna manera.

(4) Para dominar el orden de los métodos de prueba, no puede confiar en el orden de ejecución de los métodos de prueba.

Domo:

La clase pública TestMyNumber extiende TestCase {

Privada MyNumber myNumber

Pública TestMyNumber(nombre de cadena){

Super(nombre);

}

//Se llamará antes de que se ejecute cada método de prueba.

@Override

La configuración de anulación pública() genera una excepción {

// System.out.println (Bienvenido a usar Junit para pruebas unitarias...) ;

mi número = new mi número();

}

// Después de ejecutar cada método de prueba, se llamará.

@Override

public void tearDown() lanza una excepción {

// System.out.println(La prueba de la unidad Junit finaliza...);

}

public void testDivideByZero() {

Throwable te = null

Prueba {

myNumber.divide (6, 0);

Assert.fail(prueba fallida);

} catch(Exception e) {

e . p>

te = e;

}

asertar .asertar igual(excepción . clase, te .getclass());

Assert.assertEquals (el divisor no puede ser 0, te . getmessage()

}

}

versión 2.junit4.x

( 1), Cuando usamos la versión JUnit 4.x para pruebas unitarias, no necesitamos que la clase de prueba herede la clase principal TestCase, porque la versión JUnit 4.x introduce completamente la anotación para ejecutar las pruebas que escribimos.

(2), versión junit4.x, use comentarios para pruebas unitarias

(3), versión junit4.x, nuestros comentarios de uso común:

A.@Before Nota: Tiene la misma función que el método setUp() en junit3.x y se ejecuta antes de cada método de prueba;

b. @After Nota: Tiene la misma función que el. Las funciones del método TearDown () en junit3.x son las mismas y se ejecutan después de cada método de prueba.

C.@BeforeClass Nota: se ejecuta antes de que se ejecuten todos los métodos

d; @AfterClass Nota: ejecutado antes de todos los métodos Ejecutar después de la ejecución

e, @Test(timeout = xxx) Nota: configure el método de prueba actual para que se ejecute dentro de un cierto período de tiempo; de lo contrario, se devolverá un error. ;

f, @Test(expected = Exception.class) Nota: establezca si el método que se está probando arroja una excepción. El tipo de excepción lanzada es: Exception.class;

g, @Ignore comentario: comente un método o clase de prueba, el método o clase anotado no se ejecutará.

Domo:

Paquete com.an.JUnit;

Importar org.JUnit.assert.* estático;

Importar org. JUnit después;

Importar org . JUnit . p>

Importar org.JUnit.test;

Clase pública TestMyNumber {

Privada MyNumber myNumber

@BeforeClass

/ /Ejecutado antes de que se ejecuten todos los métodos.

Public static void globalInit() {

System.out.println(init all método...);

}

@After class

//Ejecutar después de ejecutar todos los métodos.

public static void global destroy(){

System.out.println(destruir todo el método...);

}

@Anterior

//Ejecutado antes de cada método de prueba

Public void settings(){

System.out.println(iniciar método de configuración

mi número = new mi número();

}

@after

//Ejecutado después de cada método de prueba

Desmontaje de vacío público(){

System.out.println(finalizar método desmontaje);

}

@Test(timeout= 600) // Establezca el tiempo de ejecución del método de prueba limitado. Si lo excede, se devolverá un error.

Public void testAdd() {

System.out.println(método testAdd);

int resultado = myNumber.add(2, 3);

assertEquals(5, resultado);

}

@test

public void testSubtract() {

system . out . println(método de resta de prueba);

int resultado = mi número .

}

@test

public void testMultiply() {

sistema out . >int resultado = myNumber.multiply(2, 3);

assertEquals(6, resultado

}

@test

public void testDivide() {

System.out.println(método testDivide);

int resultado = 0;

Intenta {

resultado = myNumber.divide(6, 2);

} catch (excepción e) {

fail();

assertEquals(3, resultado);

}

@Test(expected = Exception.class)

public void testDivide2() lanza una excepción {

System.out.println(método testDivide2);

myNumber.divide(6,0);

Error (error de prueba);

}

Public static void main(String[] args) {

}

}

Los amigos interesados ​​pueden venir a Estudiar detenidamente o vaya al blog del taller de bricolaje de An'an para discutirlo juntos.

JUnit-addons

Algunas adiciones a JUnit, como configuración, obtener el valor de propiedad privada del objeto bajo prueba, llamar al método privado del objeto bajo prueba, etc.

Clase pública: junitx.util.PrivateAccessor

Marco de prueba de Spring

Puede probar aplicaciones basadas en Spring y ensamblar automáticamente los componentes necesarios a través de archivos de configuración y anotaciones. objeto de prueba unitaria.

Proporciona algunos objetos de simulación J2EE de uso común, como la clase de simulación HttpSession.

Se puede admitir la reversión automática de la base de datos para evitar que se repitan las pruebas unitarias (inserciones, eliminaciones, etc.) y para evitar que se modifique el estado de la base de datos.

Junet

Los objetos de simulación se generan automáticamente mediante el código, lo que le evita tener que escribir manualmente más de n clases de simulación.

Además, su complemento Eclipse también puede probar estadísticas de cobertura y sucursales.

EasyMock

La función es la misma que DJUnit y también simula automáticamente clases y métodos no relacionados con el objeto de prueba a través de la programación.