C++ Mock/Test boost::asio::io_stream — асинхронный обработчик на основе

StackOverflow https://stackoverflow.com/questions/2426807

Вопрос

Недавно я вернулся к C/C++ после нескольких лет работы с C#.За эти годы я осознал ценность Mocking и Unit-тестирования.

Найти ресурсы для тестов Mocks и Units на C# тривиально.WRT Издевательство, не столько с C++.

Мне хотелось бы получить некоторые рекомендации о том, что делают другие, чтобы имитировать и тестировать обработчики Asynch io_service с помощью boost.

Например, в C# я бы использовал MemoryStream для имитации IO.Stream и предполагаю, что мне следует пойти по этому пути.

  • Лучшие практики C++ Mock/Test
  • boost::asio::io_service Рекомендации по макетированию/тестированию
  • Рекомендации по макетированию/тестированию асинхронного обработчика C++

Я начал процесс с googlemock и googletest.

Это было полезно?

Решение

Как вы, вероятно, уже заметили, в C++ гораздо меньше возможностей для создания макетов, чем в C# или Java.Лично я склонен писать свои собственные макеты по мере необходимости, а не использовать фреймворк.Поскольку большинство моих проектов, как правило, содержат большое количество интерфейсов, для меня это не особенно сложно, и я обычно создаю «фиктивную библиотеку», которая соответствует коду, который я разрабатываю.Пример того, как я это делаю, можно найти здесь в моих статьях «Практическое тестирование».В конце концов, это не так уж и отличается от макетирования и тестирования на C#, применяются все те же принципы, просто в конечном итоге вам придется выполнять большую часть тяжелой работы самостоятельно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top