2010-03-11 9 views
9

Recientemente volví a C/C++ después de años de C#. Durante esos años, he descubierto el valor de las burlas y las pruebas unitarias.C++ Mock/Test boost :: asio :: io_stream Asynch Handler

Encontrar recursos para pruebas de Mocks and Units en C# es trivial. WRT Burlarse, no tanto con C++.

Me gustaría obtener una guía sobre lo que otros hacen para burlarse y probar Asynch io_service handlers con boost.

Por ejemplo, en C# usaría un MemoryStream para simular un IO.Stream, y supongo que este es el camino que debería tomar aquí.

  • C++ Mock/prueba las mejores prácticas
  • impulso :: :: asio io_service mejores prácticas Mock/prueba las mejores prácticas
  • C++ asíncrono Handler Mock/prueba

he comenzado el proceso de con googlemock y googletest.

Respuesta

6

Como probablemente ya hayas encontrado, hay mucha menos ayuda para burlarse en C++ que en C# o Java. Personalmente tiendo a escribir mis propios simulacros cuando los necesito en lugar de utilizar un marco. Dado que la mayoría de mis diseños tienden a ser pesados ​​en las interfaces, esto no es especialmente difícil para mí y tiendo a construir una 'biblioteca falsa' que vaya con el código que estoy desarrollando. Un ejemplo de cómo hago las cosas se puede encontrar en here en mis artículos de "Práctica de prueba". Al final, no es tan diferente a las burlas y las pruebas en C#, todos los mismos principios aplican, solo terminas haciendo más trabajo pesado por ti mismo.

+0

Esto de hecho es útil. Va un largo camino para responder a la primera de mis balas. Esperaba una guía directa sobre la mejor manera de simular/probar la E/S asíncrona usando boost :: asio :: io_service. – rbellamy

+0

Lo siento, no uso ASIO, tengo mi propio marco de E/S asincrónico. –

+2

también, eche un vistazo a Working Effectively With Legacy Code de Michael Feathers. Descubrí que es un buen recurso y muy útil para ayudar a identificar las costuras y configurar tus propios simulacros. – Tim

Cuestiones relacionadas