Google Mock 1.7.0では、メソッドを持つモックオブジェクトがあり、それが呼び出されることを期待したいのですが、この場合、モックされたメソッドは例外をスローする必要があります。
ObjectMock object_mock_;
EXPECT_CALL(object_mock_, method())
.Times(1)
.WillRepeatedly(???);
例外をスローするGoogleモックアクションはありますか?私はそれをドキュメントで見つけませんでした、それでも私は誰もそれを今のところ必要としていないと思います。
ありがとう!
例外をスローする簡単なアクションを書くだけです。
_ACTION(MyThrowException)
{
throw MyException();
}
_
そして、標準的なアクションと同じように使用します。
_ObjectMock object_mock_;
EXPECT_CALL(object_mock_, method())
.Times(1)
.WillRepeatedly(MyThrowException());
_
Googlemockの標準アクション Throw()
もあります。これは、実行されたアクションとして例外をスローすることをサポートします(これを機能させるには、MyException
がコピー可能なクラスである必要があることに注意してください!):
_ObjectMock object_mock_;
EXPECT_CALL(object_mock_, method())
.Times(1)
.WillRepeatedly(Throw(MyException()));
_
GoogleMock CookBook で、ACTION
およびパラメーター化された_ACTION_P<n>
_定義の完全なドキュメントを検索します。
この構文はThrow(exception)
です。ここで、例外はコピー可能な値です。
ObjectMock object_mock_;
EXPECT_CALL(object_mock_, method())
.Times(1)
.WillRepeatedly(Throw(exception));