13

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

在 C# 中查找 Mocks 和单元测试的资源是微不足道的。WRT Mocking,与 C++ 无关。

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

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

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

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

4

1 回答 1

8

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

于 2010-03-11T16:57:18.607 回答