是否可以使用tests :: NiceMock<>来包装/配置模拟引用?等价?

时间:2013-07-09 22:55:54

标签: c++ googletest googlemock

我有一个复杂的模拟类,可以通过引用公开其他(必要的)模拟实例。由于存在循环依赖关系,我必须解决这些问题,使用前向声明并将实现放到具体的编译单元(以查看已完成的类声明)。

在编写测试用例时,我想表现出像testing::NiceMock<T>这样的实例,但我看不出如何实现这一目标。

使用testing::NiceMock<ExposedMockClass>*testing::NiceMock<ExposedMockClass>&替换公开的引用不起作用,因为此时ExposedMockClass只是向前声明。

是否有一种技术可以使用gmock on board实用程序来实现这一目标?

1 个答案:

答案 0 :(得分:1)

NiceMock<T>继承自T,所以唯一需要知道它的是NiceMock就是创造它的东西。从那时起,您可以将其作为T处理。

例如,完全可以这样做:

ExposedMockClass* mockObject = new testing::NiceMock<ExposedMockClass>();
EXPECT_CALL(*mockObject, exampleFunction(_,_));