C++ Mock/Test boost :: asio :: io_stream - 基于Asynch Handler

rbe*_*amy 12 c++ mocking googletest boost-asio googlemock

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

在C#中为模拟和单元测试寻找资源是微不足道的.WRT Mocking,与C++不同.

我希望得到一些关于其他人做什么来模拟和测试Asynch io_service处理程序的指导.

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

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

我已经开始使用googlemock和googletest.

Len*_*ate 7

正如您可能已经发现的那样,在C++中进行模拟比在C#或Java中进行模拟要少得多.就个人而言,当我需要它而不是使用框架时,我倾向于编写自己的模拟.由于我的大部分设计都倾向于在界面上很重,这对我来说并不是特别困难,而且我倾向于建立一个与我正在开发的代码一致的"模拟库".我是如何做的事情的一个例子可以发现这里在我的"实际测试"的文章.最后,它与C#中的模拟和测试并没有什么不同,所有相同的原则都适用,你最终会自己做更多的繁重工作.

  • 另外,请看Michael Feathers有效地使用遗留代码.我发现这是一个很好的资源,非常有助于识别接缝并设置自己的模拟. (2认同)