2010-03-11 7 views
9

Sono tornato di recente in C/C++ dopo anni di C#. In quegli anni ho trovato il valore di Mocking e test delle unità.C++ Mock/Test boost :: asio :: io_stream - Asynch Handler

Trovare le risorse per i test di Mock and Units in C# è banale. WRT Mocking, non tanto con il C++.

Vorrei una guida su ciò che gli altri fanno per prendere in giro e testare i gestori di Async io_service con boost.

Ad esempio, in C# userei un MemoryStream per simulare un IO.Stream, e presumo che questo sia il percorso da seguire qui.

  • C++ Mock/test migliori pratiche
  • boost :: ASIO :: io_service Mock/test migliori pratiche
  • C++ asincrone Handler Mock/test migliori pratiche

ho iniziato il processo con googlemock e googletest.

risposta

6

Come probabilmente avete già trovato, c'è molto meno aiuto per il mocking in C++ rispetto a C# o Java. Personalmente tendo a scrivere i miei stessi mock come e quando ho bisogno di loro piuttosto che usare un framework. Poiché la maggior parte dei miei progetti tende ad essere pesante sulle interfacce, questo non è particolarmente difficile per me e io tendo a creare una "libreria fittizia" che si accompagna al codice che sto sviluppando. Un esempio di come faccio le cose può essere trovato here nei miei articoli 'Practical testing'. Alla fine non è poi così diverso da beffare e testare in C#, si applicano tutti gli stessi principi, finisci per fare più di te stesso.

+0

Questo è davvero utile. Fa molto per rispondere al primo dei miei proiettili. Speravo di avere delle indicazioni dirette sul modo migliore per simulare/testare l'I/O asincrono usando boost :: asio :: io_service. – rbellamy

+0

Spiacente, non uso ASIO, ho il mio framework I/O asincrono. –

+2

inoltre, dai un'occhiata a Working Effectively With Legacy Code di Michael Feathers. Ho trovato che fosse una buona risorsa, e molto utile per aiutare a identificare le cuciture e impostare i propri Mock. – Tim