Nous utilisons la bibliothèque de statistiques d'amplification et avons des difficultés à écrire des tests unitaires pour le code.Tests unitaires avec boost :: statechart
Dans notre exécution normale de la machine d'état commence à ClosedState
:
struct BoostStateMachine : sc::state_machine<BoostStateMachine, ClosedState >
Nous voudrions tester une transition d'état spécifique sans avoir à traverser la machine d'état jusqu'à cet état, par exemple, nous aimerions commencer la test dans AnotherState
. Le problème est que sc::state_machine
est modélisé sur son état initial. Nourrir la machine d'état avec tous les événements qui mènent aux états testés, nécessite généralement beaucoup de travail et complique les tests.
Une solution primitive consiste à écrire un événement spécial de débogage uniquement et à l'ajouter à ClosedState
. Cet événement déclenchera une transition immédiate vers AnotherState
.
Connaissez-vous un autre moyen d'accomplir cette tâche?
Ne fonctionnera pas car nous voulons naturellement de nombreux cas de test qui commencent avec différents états. – FireAphis
@FireAphis voir modifier dans mon message original pour une autre façon d'une autre manière – KitsuneYMG
Merci pour la réponse élaborée. Je suppose, techniquement, que je n'ai pas vraiment besoin du DO_TESTS ifdef parce que ces types ne seront pas utilisés dans le code de production de toute façon. Droite? – FireAphis