:
デフォルトで
、モックメソッドが呼び出されたときに、Googleのモックは、それらが定義されて逆の順序で 期待を検索し、引数に一致する アクティブ期待があるときに停止します(より新しい規則は古い規則を上書きすると考えることができます)。
TheSameArgumentsGoingToFail
のテストでは、2番目の期待値が2回一致し、最初のものがまったくマッチしないため、失敗します。テスト 'DifferentArgumentsGoingToBeOk`が合格することに注意してください。
#include <gmock/gmock.h>
using namespace ::testing;
struct SomeMock
{
MOCK_CONST_METHOD1(foo, void(int));
};
TEST(Examples, TheSameArgumentsGoingToFail)
{
SomeMock mock;
EXPECT_CALL(mock, foo(4));
EXPECT_CALL(mock, foo(4));
mock.foo(4);
mock.foo(4);
}
TEST(Examples, DifferentArgumentsGoingToBeOk)
{
SomeMock mock;
EXPECT_CALL(mock, foo(4));
EXPECT_CALL(mock, foo(5));
mock.foo(4);
mock.foo(5);
}
あなたが同じパラメータ(InSequence usage、RetiresOnSaturation)を持つ複数の期待を作成したい場合には、多数の技術を使用することができます。それは非常に頻繁に必要ではありません。