ON_CALLとEXPECT_CALLを使用してデフォルトのアクションを指定するときの違いがわかりません。
これまでのところ、モックのデフォルトアクションを調整する方法は2つあります。
ON_CALL(mock, methodX(_)).WillByDefault(Return(0x01));
または
EXPECT_CALL(mock, methodX(_)).WillRepeatedly(Return(0x01));
誰かが私に説明できますか:
_ON_CALL(mock, methodX(_)).WillByDefault(Return(0x01));
EXPECT_CALL(mock, methodX(_)).WillRepeatedly(Return(0x01));
_
あなたが言ったように、これらの2行はまったく同じことをしているので、まったく違いはありません。いずれかの方法を使用して、必要に応じてデフォルトのアクションを設定します。
ただし、論理的な違いがあります。
ON_CALL(mock, methodX(_)).WillByDefault(Return(0x01));
は、メソッドが呼び出される可能性があることを意味し、その場合、すべての呼び出しは0x01を返しますEXPECT_CALL(mock, methodX(_)).WillRepeatedly(Return(0x01));
は、メソッドが呼び出されることが期待され、すべての呼び出しが0x01を返すことを意味しますところで、チートシートには デフォルトアクションの設定 があります。
特定のメソッドのデフォルトアクションをカスタマイズするには、ON_CALL()を使用します。
_ON_CALL(mock_object, method(matchers))
.With(multi_argument_matcher) ?
.WillByDefault(action);
_