with test speed setup primer juego google español color c++ testing googletest

c++ - setup - google test speed



¿Qué es Google Test, Death Tests? (2)

Vi que la documentación de esa función parece bastante importante, ya que está en las funciones de descripción general de Google Test y se detalla en:
https://github.com/google/googletest/blob/master/googletest/docs/advanced.md#death-tests

Se ven como estándar assert() pero son parte de Google Test, por lo que un marco de prueba xUnit. Por lo tanto, me pregunto cuál es el uso real o la ventaja de usar esas pruebas de muerte .


La afirmación está allí para confirmar que una función provocaría la terminación del programa si se ejecutara en el proceso actual (los detalles explican que la prueba de muerte se invoca desde un subproceso que permite que las pruebas continúen a pesar del fallecimiento). Esto es útil porque algunos códigos pueden garantizar la terminación del programa / aborto en caso de falla (por ejemplo, si hubo un error irrecuperable), y las pruebas unitarias deben confirmar que una función se adhiere a su comportamiento documentado, independientemente de lo que sea.

La descripción en la página wiki realmente lo explica mejor:

En muchas aplicaciones, hay afirmaciones que pueden causar fallas en la aplicación si no se cumple una condición. Estas comprobaciones de cordura, que aseguran que el programa se encuentra en buen estado, fallarán en el momento más temprano posible después de que se haya dañado algún estado del programa. Si la afirmación comprueba el estado incorrecto, entonces el programa puede proceder en un estado erróneo, lo que podría conducir a daños en la memoria, agujeros de seguridad o algo peor. Por lo tanto, es de vital importancia comprobar que dichas afirmaciones funcionan como se espera.


Pensé que la introducción en su enlace lo explicaba bastante bien:

En muchas aplicaciones, hay afirmaciones que pueden causar fallas en la aplicación si no se cumple una condición. Estas comprobaciones de cordura, que aseguran que el programa se encuentra en buen estado, fallarán en el momento más temprano posible después de que se haya dañado algún estado del programa. Si la afirmación comprueba el estado incorrecto, entonces el programa puede proceder en un estado erróneo, lo que podría conducir a daños en la memoria, agujeros de seguridad o algo peor. Por lo tanto, es de vital importancia comprobar que dichas afirmaciones funcionan como se espera.

Como estas verificaciones previas provocan la muerte de los procesos, llamamos a dichas pruebas pruebas de muerte. De manera más general, cualquier prueba que verifique que un programa termina de una manera esperada también es una prueba de muerte.

¿Qué poco de eso no tiene sentido?