C ++ Mock / Test boost :: asio :: io_stream - основанный Asynch Handler - PullRequest
11 голосов
/ 11 марта 2010

Я недавно вернулся на C / C ++ после многих лет C #. В те годы я нашел ценность Mocking и модульного тестирования.

Поиск ресурсов для тестов Mocks и Units в C # тривиален. WRT Насмешка, не так много с C ++.

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

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

  • C ++ Mock / Лучшие практики тестирования
  • boost :: asio :: io_service Макет / тестирование лучших практик
  • С ++ Асинхронный обработчик. Рекомендации по применению макета / теста

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

1 Ответ

7 голосов
/ 11 марта 2010

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

...