最近在弄Windows上编写GCC代码环境的 UT工具搭建工作,尝试了几种组合,供大家选择。
1 windows + gtest + gmock + cygwin 缺点 gtest 不能mock C函数。
2 windwos + gtest + cygwin + mockcpp 缺点 mokcpp同cygwin不能完全兼容,而且 不支持修改代码段的内存,所以自研的hook工具不好使。
3 windwos + gtest + mingw + mockcpp 兼容,但是mingw对 linux不能提供完整的库,比如没有包含socket.h,对开发linux环境的程序,非常麻烦。
所以建议:
1 如果不用mokc功能的话,使用方案2,所有外围函数需要用桩搞定。
2 开发linux环境,建议还是用真正的linux环境,比如UBUNTU非常好用。
另外一个mockcpp的问题:
1
id只有对expects语句有用,而对stubs则编译失败。
2
mock对invoke使用不建议使用 will then等语句,好像有bug。