Qu'est-ce que Google Test, Death Tests

j'ai vu que la documentation de cette fonctionnalité est assez importante car il est dans les fonctionnalités de Google test vue d'ensemble et détaillé dans:

https://github.com/google/googletest/blob/master/googletest/docs/advanced.md#death-tests

ils ressemblent à la norme assert() mais ils font partie de Google Test, donc un cadre de test xUnit. Par conséquent, je me demande ce que l'usage réel ou l'avantage de l'utilisation de ces la mort tests .

23
demandé sur rold2007 2010-09-13 12:07:37

2 réponses

l'affirmation est là pour confirmer qu'une fonction entraînerait la fin du programme si elle était exécutée dans le processus actuel (les détails expliquent que le test de la mort est invoqué à partir d'un sous-processus qui permet aux tests de continuer malgré la mort). Ceci est utile parce qu'un certain code peut garantir la fin du programme / l'avortement en cas d'échec (par exemple s'il y avait une erreur irrécupérable), et les tests unitaires devraient confirmer qu'une fonction adhère à son comportement documenté, indépendamment ce que cela pourrait être.

la description sur la page wiki l'explique vraiment le mieux:

dans de nombreuses applications, il y a des affirmations qui peuvent causer l'échec de l'application si une condition n'est pas respectée. Ces contrôles de santé mentale, qui assurent que le programme est dans un bon état connu, sont là pour échouer le plus tôt possible après un État de programme est corrompu. Si l'assertion vérifie la mauvaise condition, alors le programme peut continuer un État erroné, qui pourrait conduire à la corruption de la mémoire, des trous de sécurité, ou pire. Il est donc d'une importance vitale de vérifier que de tels énoncés d'assertion fonctionnent comme prévu.

17
répondu Michael Aaron Safyan 2010-09-13 08:15:36

je pensais que l'introduction dans votre lien l'expliquait assez bien:

dans de nombreuses applications, il y a des affirmations qui peuvent causer l'échec de l'application si une condition n'est pas respectée. Ces contrôles de santé mentale, qui assurent que le programme est dans un bon état connu, sont là pour échouer le plus tôt possible après un État de programme est corrompu. Si l'assertion vérifie la mauvaise condition, alors le programme peut continuer dans un État erroné, qui pourrait conduire à la corruption de la mémoire, des trous de sécurité, ou pire. Il est donc d'une importance vitale de vérifier que de tels énoncés d'assertion fonctionnent comme prévu.

étant donné que ces contrôles préalables entraînent la mort des processus, nous appelons ces tests les tests de décès. Plus généralement, tout test qui vérifie qu'un programme se termine de façon attendue est aussi un test de décès.

Qu'est-ce qui n'a pas de sens?

1
répondu Jon Cage 2010-09-13 08:18:25