A
次のクラスとがあるとしましょうB
:
class A
{
virtual void Init() { DoSomething(); }
};
class B : public A
{
virtual void Init() { DoSomethingSpecial(); A::Init(); }
};
単体テストでは、 のみをテストします。つまり、呼び出すと実際に が呼び出されることをHippomocksB
を使用してテストします。B::Init()
DoSomethingSpecial()
B* b_p = new B();
m_mockRepository_p->ExpectCall(b_p, DoSomethingSpecial);
b_p->Init();
A
からのすべての呼び出しを期待したくないので、次のInit()
ように記述します。
m_mockRepository_p->ExpectCall(b_p, A::Init);
最後の期待値は未処理の例外を引き起こしますが、呼び出しているメソッドと期待したい基本バージョンを混在させているので問題ないと思います。b_p
へのキャストA
は役に立ちません。
その特定のユースケースに対する解決策はありますか?