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

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

testing::NiceMock<ExposedMockClass>*testing::NiceMock<ExposedMockClass>&替换公开的引用不起作用,因为ExposedMockClass在该点刚刚声明。

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

最佳答案

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

例如,这样做完全可以:

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

关于c++ - 是否可以使用testing::NiceMock <>等价包装/配置模拟引用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17559669/

10-10 08:34