【问题标题】:C++ Mock/Test boost::asio::io_stream - based Asynch HandlerC++ 模拟/测试 boost::asio::io_stream - 基于异步处理程序
【发布时间】:2010-03-11 16:35:39
【问题描述】:

经过多年的 C#,我最近回到了 C/C++。在那些年里,我发现了 Mocking 和单元测试的价值。

在 C# 中查找 Mocks 和单元测试的资源很简单。 WRT Mocking,与 C++ 无关。

我想要一些关于其他人如何使用 boost 模拟和测试异步 io_service 处理程序的指导。

例如,在 C# 中,我会使用 MemoryStream 来模拟 IO.Stream,并假设这是我应该采取的路径。

  • C++ 模拟/测试最佳实践
  • boost::asio::io_service 模拟/测试最佳实践
  • C++ 异步处理程序模拟/测试最佳实践

我已经用 googlemock 和 googletest 开始了这个过程。

【问题讨论】:

    标签: c++ mocking boost-asio googletest googlemock


    【解决方案1】:

    您可能已经发现,与 C# 或 Java 相比,在 C++ 中模拟的帮助要少得多。就个人而言,我倾向于在需要时编写自己的模拟,而不是使用框架。由于我的大多数设计往往在接口上很重,这对我来说并不是特别困难,我倾向于建立一个与我正在开发的代码配套的“模拟库”。在我的“实际测试”文章中可以找到here 我如何做事的示例。最后,它与 C# 中的模拟和测试没有什么不同,所有相同的原则都适用,您最终只是自己完成了更多繁重的工作。

    【讨论】:

    • 这确实很有帮助。回答我的第一颗子弹还有很长的路要走。我希望得到一些关于如何最好地使用 boost::asio::io_service 模拟/测试异步 I/O 的直接指导。
    • 另外,看看 Michael Feathers 的《有效地使用遗留代码》。我发现这是一个很好的资源,对帮助识别接缝和设置自己的 Mocks 很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多