我有以下情况:
类接口A; 类接口B; 类接口C; 类接口A { 虚拟 void foo(InterfaceC&) = 0; }; 类接口B { 虚拟空条()= 0; }; 类接口C { 虚空 bla() = 0; }; // 模拟 模拟类A:公共接口A { 上市: MOCK_METHOD0(foo, void(InterfaceC&)); }; MockB 类:公共接口 B { 上市: MOCK_METHOD0(bar, void()); }; 类 ImplC:公共接口 C { 上市: ImplC(InterfaceA& a, Interface& b) : m_a(a), m_b(b) {} 无效 doSomething() { m_a.foo(*this); } 虚空 bla() { m_b.bar(); } };
模拟A模拟A; 模拟B模拟B; EXPECT_CALL(mockA, foo()); ImplC impl(mockA, mockB); impl.doSomething(); // 将在 mockA 上调用 foo
如果调用 doSomething,则将在 MockA 上调用 foo。如果将调用 foo,我如何触发方法 bla 的调用?是否有可能以某种方式产生如下期望:
EXPECT_CALL(mockA, foo()).WillOnce(Invoke(impl.bla()));
?
我希望答案很清楚,例子也很清楚。
提前致谢。市场