2012-02-13 16 views
5

Quiero implementar algunas pruebas de unidad C/C++ muy simples para una función que se supone que comprime o descomprime algunos datos.¿Cómo implementar la prueba unitaria para una función C simple que devuelve datos binarios?

Principalmente la entrada es un bloque binario y la salida también es un bloque binario. Los bloques binarios deben tener menos de 50 bytes, probablemente con 5-6 pares.

Estoy buscando una solución que preferiblemente no requeriría bibliotecas de terceros. Si se requiere, este debería ser muy pequeño/simple.

+0

No está claro si las bibliotecas de terceros a las que se hace referencia podrían ayudar a implementar pruebas unitarias o proporcionar la misma funcionalidad (para probarlas en ese momento). ¿Podrías precisar? –

+2

no pudo evitarlo: sorin 6.666 (diabólico)! – INS

+0

no más, ahora estoy por encima del diablo;) – sorin

Respuesta

1

"Estoy buscando una solución que no requiera bibliotecas de terceros."

Simplemente escriba la función de prueba de unidad, es fácil: cree una función que invocará la función to-be-testet con diferentes argumentos y comparará el resultado con las salidas esperadas. Agregue un puntero de función a esa función de prueba a una matriz de puntero a función global en la que almacena todas las funciones de prueba para que pueda ejecutarlas a demanda.

1

De alguna manera lo que necesita para validar sus funciones y las únicas soluciones que se me ocurren son:

  • uso algunas bibliotecas 3 ª parte (conocidos a funcionar en la práctica)
  • utilizar algunas secuencias de datos para que se saber exactamente cómo debe ser la salida
+0

Usar la biblioteca de terceros que se sabe que funciona en práctica solo es útil para generar el conjunto de datos, a menos que planee realizar pruebas difusas (pero esto es ligeramente diferente ya que los resultados son generalmente no reproducible). –

0

Hay dos tipos de pruebas de unidad que se me ocurren. 1. Para verificar si la salida es correcta o no. Para esto, puede probar con las entradas para las que se conoce la salida. En el código de unidad, puede comparar la salida del método con la salida conocida. 2. Para verificar regresiones solo. He utilizado este tipo de pruebas en algún tipo de base de código heredada. Aquí sus funciones se prueban de alguna manera (quizás probadas con otros medios). Pero, cuando alguien realiza algunos cambios en este código, debe asegurarse de que el resultado principal no esté dañado. Para esto, podría llamar al método en una compilación particular en la que estaba seguro de que la función funcionaba bien y capturar esta salida como línea de base. Más tarde, podría escribir un controlador de prueba de unidad para llamar al método y comparar el resultado con la salida de línea base en todas las compilaciones posteriores. Pero debe recordar actualizar la línea de base cuando la función se modificó intencionalmente para modificar el resultado más tarde.

Cuestiones relacionadas