test studio prueba programacion móviles libro hacer duro disco desde desarrollo curso como aplicaciones c check-framework
https://dl.dropbox.com/u/1987095/test-check.zip

studio - programacion android pdf 2018



¿Existe un tutorial más básico para la comprobación de la estructura de prueba de la unidad C? (3)

Estoy intentando seguir el tutorial oficial aquí, pero requiere un conocimiento práctico de autotools, que no tengo. Esperaba solo escribir un par de pruebas rápidas, y encuentro este tutorial abrumador. Se basa en mucha magia en autoconf, automake y algunas macros de Check, supongo, y no explica cómo funciona realmente el Check para que pueda realizar pruebas a mano.

¿Alguien puede recomendar un tutorial más simple que no requiera autotools?


Ciertamente, no es necesario aprender autotools para usar Check in small projects. Digamos que nuestro main () está en main.c y nuestra implementación.c tiene una función que suma 2 ints. (implementación.h contiene solo la función prototipo)

#include "implementation.h" int sum(int a, int b) { return a + b; }

Puedes escribir una prueba así:

#include "implementation.h" #test sum2test fail_unless(sum(3, 2) == 5, "sum function borked"); fail_unless(sum(-3, 2) == -1, "sum function borked"); fail_unless(sum(3, -2) == 1, "sum function borked"); fail_unless(sum(-3, -2) == -5, "sum function borked");

Guarde el archivo en implementation-test.check (puede elegir cualquier nombre / extensión que desee, pero quédese con ellos si quiere seguir mi guía) y luego ejecute el script awk incluido que viene con Check. ¡Ni siquiera tiene que molestarse con el código para el marco de verificación! (para mas detalles man checkmk)

checkmk implementation-test.check >implementation-test.c

La salida será la siguiente:

/* * DO NOT EDIT THIS FILE. Generated by checkmk. * Edit the original source file "implementation-test.check" instead. */ #include <check.h> #line 1 "implementation-test.check" #include "implementation.h" START_TEST(sum2test) { #line 4 fail_unless(sum(3, 2) == 5, "sum function borked"); fail_unless(sum(-3, 2) == -1, "sum function borked"); fail_unless(sum(3, -2) == 1, "sum function borked"); fail_unless(sum(-3, -2) == -5, "sum function borked"); } END_TEST int main(void) { Suite *s1 = suite_create("Core"); TCase *tc1_1 = tcase_create("Core"); SRunner *sr = srunner_create(s1); int nf; suite_add_tcase(s1, tc1_1); tcase_add_test(tc1_1, sum2test); srunner_run_all(sr, CK_ENV); nf = srunner_ntests_failed(sr); srunner_free(sr); return nf == 0 ? 0 : 1; }

Luego, simplemente incluya -lcheck cuando compile para vincular la biblioteca de verificación y ejecute el programa.

gcc -Wall -o sum2ints-test implementation.c implementation-test.c -lcheck ./sum2ints

A continuación se muestra un simple makefile para comenzar. Guárdelo en sum2ints.makefile y luego, para compilar la implementación.c junto con main, ejecute:

make -f sum2ints.makefile

Para compilar y ejecutar la implementación.c con nuestra implementación-prueba.c que se creó a partir de checkmk, ejecute:

make -f sum2ints.makefile test

-

CFLAGS=-Wall LIBS=-lcheck all: sum2ints sum2ints: main.o implementation.o gcc -o sum2ints main.o implementation.o main.o: main.c implementation.h gcc $(CFLAGS) -c main.c implementation.o: implementation.c implementation.h gcc $(CFLAGS) -c implementation.c test: sum2ints-test ./sum2ints-test sum2ints-test: implementation-test.o implementation.o gcc -o sum2ints-test implementation.o implementation-test.o $(LIBS) implementation-test.o: implementation-test.c implementation.h gcc $(CFLAGS) -c implementation-test.c

He preparado un archivo .zip para usted que contiene todo lo anterior.

https://dl.dropbox.com/u/1987095/test-check.zip


Oh, creo que es mejor que aprendas autotools que debes conocer en el Área de Programación C.

Si solo quieres usar unittest y MinUnit es una mejor opción.

Aprende Autoconf, Automake, hazlo here


Revisé múltiples tutoriales. This salió de la caja:

archivo.c

#include <stdio.h> #include <assert.h> #define run_test(fn_name) / printf("%s/n", #fn_name); / fn_name() // Stupid sample tests void test_foo() { assert(1 < 2); } void test_bar() { assert(NULL == (void*)0); } int main(int argc, char *argv[]) { run_test(test_foo); run_test(test_bar); printf("/nOK/n"); return 0; }

construir y correr

user@host ~/ $ make file user@host ~/ $ ./file test_foo test_bar OK