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