2013-04-24 17 views
11

Google Mockを使用する予定です。私はその後、そのオブジェクトからいくつかのメソッドを呼び出すことができるように、オブジェクト参照を取得する必要があります。Google Mock(gmock)でパラメータを取り込むことは可能ですか?

Google Mockにはキャプチャ機能がありますか?そうでない場合は、C++単体テストの他の選択肢は何ですか? 1つの選択肢は、オブジェクトをキャプチャする自分のモッククラスを作成することです。

私はJavaのEasyMockに似た何かを探しています。例(ない実際のコード):

Capture<MyObject> capture; 
EXPECT_CALL(myInterface, access(capture)); 
instanceUnderTest.setAccessPoint(myInterface); 
instanceUnderTest.run(); 
MyObject &capturedObject = capture.getValue(); 
EXPECT_EQ(ACCESS_IN_PROGRESS, capturedObject.getState()); 

答えて

8

あなたは(値ずつを捕獲するための標準的なSaveArgアクションがある)、参照によってメソッドのパラメータをキャプチャするためにカスタムアクションを書くことができます。しかし、あなたが望むものはより簡単な方法で達成することができます:

using testing::Property; 
using testing::Eq; 
EXPECT_CALL(myInterface, 
      access(Property(&MyObject::getState, Eq(ACCESS_IN_PROGRESS)))); 
関連する問題