1

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

在编写测试用例时,我想让这些实例表现得像testing::NiceMock<T>,但我看不到如何实现这一点的方向。

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

gmock 板载实用程序是否有可用的技术来实现这一目标?

4

1 回答 1

1

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

例如,这样做是完全可以的:

ExposedMockClass* mockObject = new testing::NiceMock<ExposedMockClass>();
EXPECT_CALL(*mockObject, exampleFunction(_,_));
于 2013-07-10T00:09:51.560 回答