2011-12-27 9 views
20

いくつか失敗した場合にテストしたいと思います。モックオブジェクトに対してgoogle mockを使用してメソッドが呼び出されません。 ので、コードは次のようなものになる:google mock:モックでメソッドが呼び出されないようにするにはどうすればいいですか?

auto mocObj = new MockObj; 
EXPECT_NO_METHOD_CALL(mocObj); //this is what I'm locking for 

auto mainObj = new MainObj(mocObj , ......and other mocks); // here I simulate a fail using the other mock objects, and I want to be sure the no methods are called on the mockObj 
+0

質問:あなたはどうしてあなたのオブジェクトをnew'ingしていますか?それは不要です... –

答えて

14

StrictMockを作成します。予想外のメソッド呼び出しが失敗します。

30

メソッドが呼び出されないことを明示的に伝える必要はありません。ロギングレベルを十分に高く設定すると、メソッドが呼び出された場合(期待値が設定されていない場合)、メッセージが表示されます。

他そしてそれは、あなたは、このような期待を設定することができます。すべてのメソッドで

EXPECT_CALL(mockObj, Foo(_)).Times(0); 

を。

+1

これは私のテストで必要なものです。しかし、右の名前は資本で始まる「Times」です。 – demi

+0

Ref:https://github.com/google/googletest/blob/master/googlemock/docs/FrequentlyAskedQuestions.md#how-can-i-assert-that-a-function-is-never-called –

1

すべてのクラスメソッドに正確に(0)を使用します。

カーディナリティが0に設定されているため、電話がかかっていないと思われます。

関連する問題