在我们做单元测试、模块的接口测试时候,经常会遇到编写的模块需要依赖另外一些类或者外部依赖接口,而这时我们所需的类还没有完成,或者外部依赖接口服务的环境搭建需要消耗较多成本,在这些时候,我们可以通过定义Mock对象来模拟所需依赖接口的行为。这是mock技术。

  给大家介绍在测试中使用的利器googlemock,它是Google在2008年发布的一套针对C++的Mock框架,与googletest吸取JUnit的精华一样,的它灵感同样来自去Java社区的JMock、EasyMock等Mock思想。

  更多关于googlemock的使用方法,参见其官方wiki http://code.google.com/p/googlemock/wiki。JMock,EasyMock的使用方法在代码层面上与googlemock像似,只是语言不同。主要注意的是,虽然googlemock一般会配合gtest(google 开源的C++单元测试框架)使用,但本身并无强制要求必须使用gtest。这意味着我们可以使用cppunit或其他的测试框架,在代码中调用使用googlemock。

  目前淘宝内部YUM服务器上有gtest-1.6.0-1.el5 和gmock-1.6.0-1 版本,可以直接下载使用。