"with" 部分のパラメーターの 1 つとしてクラス インスタンスまたは構造体インスタンスを使用して、expect 呼び出しを設定するにはどうすればよいですか? ドキュメントには、その方法が示されていないようです。文字列や整数などの単純な引数を使用していますが、クラス インスタンスは使用していません。通常、そのパラメーターを「_」として設定するだけで完了しますか?
質問する
546 次
2 に答える
0
ダスカンディはすでにそれを説明しました。
解決策は、たとえば上記の例のように、独自の比較実装を提供することです。
inline bool operator==(const MyStruct& lhs, const MyStruct& rhs)
{
if ((lhs.a == rhs.a) && (lhs.b == rhs.b))
{
return true;
}
return false;
}
これにより、コンパイラがシャットダウンし、テストが期待どおりに機能します。
TEST(check_CanCompareStructArguments)
{
MockRepository mocks;
IStruct* is = mocks.Mock<IStruct>();
MyStruct ms;
ms.a = 5;
ms.b = 7;
mocks.ExpectCall(is, IStruct::A).With(ms);
is->A(ms);
}
于 2016-08-04T13:18:09.920 に答える
0
同等のインスタンスの場合、インスタンスを渡してそれを使用できます。
比較できないインスタンスの場合、引数が .With に入力したものと一致するかどうかを判断できないため、コンパイルされません。Hippomocks が呼び出しが一致するかどうかを判断できるようにするには、どうにかしてそれらを比較できるようにする必要があります。
于 2015-03-26T09:52:09.523 に答える