2010-03-11 26 views
9

Je suis récemment revenu en C/C++ après des années de C#. Au cours de ces années, j'ai trouvé la valeur des tests de simulation et d'unité. Trouver des ressources pour les tests Mocks et Units en C# est trivial. WRT Mocking, pas tellement avec C++.C + + Mock/test boost :: asio :: io_stream-based Asynch Handler

Je voudrais des conseils sur ce que les autres font pour simuler et tester les gestionnaires Asynch io_service avec boost. Par exemple, en C#, j'utiliserais un MemoryStream pour simuler un IO.Stream, et je suppose que c'est le chemin que je devrais prendre ici.

  • C++ Mock/test meilleures pratiques
  • boost :: asio :: io_service Mock/test meilleures pratiques
  • C++ Async Handler Mock/test meilleures pratiques

J'ai commencé le processus avec googlemock et googletest.

Répondre

6

Comme vous l'avez probablement déjà trouvé, il y a beaucoup moins d'aide pour se moquer de C++ qu'en C# ou Java. Personnellement, j'ai tendance à écrire mes propres mock au fur et à mesure que j'en ai besoin plutôt que d'utiliser un framework. Comme la plupart de mes designs ont tendance à être lourds sur les interfaces, ce n'est pas particulièrement difficile pour moi et j'ai tendance à construire une «fausse bibliothèque» qui va avec le code que je développe. Un exemple de la façon dont je fais les choses peut être trouvé here dans mes articles «tests pratiques». En fin de compte, ce n'est pas si différent que de se moquer et de tester en C#, tous les mêmes principes s'appliquent, vous finissez par faire vous-même plus de travaux lourds.

+0

Ceci est en effet utile. Cela va un long chemin à répondre à la première de mes balles. J'espérais des conseils directs sur la meilleure façon de simuler/tester les E/S asynchrones en utilisant boost :: asio :: io_service. – rbellamy

+0

Désolé, je n'utilise pas ASIO, j'ai mon propre framework d'E/S asynchrone. –

+2

aussi, jetez un coup d'œil à Working Effectively With Legacy Code de Michael Feathers. J'ai trouvé que c'était une bonne ressource, et très utile pour aider à identifier les coutures et mettre en place vos propres Mocks. – Tim