Domanda

Per il test dell'unità, sto cercando di registrare tutte le transazioni statali dopo aver lasciato un calcio di un evento della macchina da stato.
E.G., Se post_event A al FIFO_SCHEDULER di un async_state_machine, la macchina dello stato passerà attraverso stati B, c, quindi torna a D. Senza essere in grado di registrare tutti gli stati dell'evento, posso controllare solo che sia andato a dichiarare D dopo che è stato fatto quando si esegue un test unitario: - (

L'unica cosa che riesco a pensare è quella di modificare tutti i metodi o i costruttori di reagire di tutti gli stati che creo (derivati da Simple_State) in modo che facciano la registrazione.Questo sembra un po 'hackash quando voglio davvero agganciare a Async_state_machine poco prima che richiama il metodo React () di uno stato ...

È stato utile?

Soluzione

.

Questo sembra un po 'hackash quando voglio davvero agganciare a Async_state_machine poco prima che invita il metodo React () di uno stato () ...

Perché vero?Creare una nuova classe che estende async_state_machine e aggiunge i ganci desiderati in esso.Se l'accesso è un problema (probabilmente sarà), fai il sempre spettacolare #define private public (o protected Hack prima di includere StatoChart.

Ho fatto qualcosa di simile per aggiungere variabili locali alla storia di uno stato e aggiungere un nuovo tipo di stato-CTOR, quindi ho una storia completa.

Altri suggerimenti

ha aggiunto un hack diverso.Ogni stato viene creato prima che sia usato dalla macchina di stato boost (poi distrutta dopo che va allo stato successivo ... sembra così inefficiente), quindi ogni stato è stato derivato da un'altra classe che ha un callback nel suo costruttore. Sembra ancora un po 'hackish ... Wish Boost ++ aveva un modo più pulito per farlo :-P

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top