次のシナリオがあります。
クラスInterfaceA; クラスInterfaceB; クラスInterfaceC; クラスInterfaceA {{ virtual void foo(InterfaceC&)= 0; }; クラスInterfaceB {{ 仮想ボイドbar()= 0; }; クラスInterfaceC {{ 仮想ボイドbla()= 0; }; //モック クラスMockA:パブリックインターフェイス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){} void doSomething(){ m_a.foo(* this); } 仮想ボイドbla() {{ m_b.bar(); } };
MockA mockA; MockB mockB; 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()));
?
答えが明確で、例もあることを願っています。
前もって感謝します。マート