5

一致に失敗した場合、Googleモックは次のようなメッセージを出力します。

test.cpp:112:EXPECT_CALL(mock_obj、foo(MyMatcherbar)))...
期待される引数#0:は[1,2;に等しい 3,4]
実際:{1}
期待される:一度呼び出される
実際:呼び出されることはない-不満でアクティブ

カスタムマッチャーMyMatcherを使用して、一致が失敗したときに失敗メッセージを生成するために使用される説明文字列を定義できます。ただし、メッセージの期待される引数#0の部分のみを定義します。実際の印刷方法をカスタマイズする方法はありますか?

私の場合、サードパーティのコードによってすでにオーバーロードされているため、 barのクラスに対してoperator <<をオーバーロードすることはできません(このライブラリは、 barのクラスとoperator <<を定義します)。

4

1 に答える 1

9

私は自分のために定義することができないので、グーグルテストにはそれのための関数を定義するオプションがありますグーグルテストにあなたの値を印刷する方法を教えます。リンクをありがとうRA 。operator <<classPrintTo

ユーザーは、Fooが定義されている名前空間でPrintTo()のオーバーロードを定義することにより、クラスタイプFooのこの動作をオーバーライドできます。Fooの<<演算子を定義することが望ましくない場合があるため、このオプションをユーザーに提供します(たとえば、コーディングスタイルによってそれができない場合や、<<演算子が既に存在するが、ユーザーが望むことを実行しない場合など)。

void PrintTo(const Bar& value, ::std::ostream* os);
于 2013-03-13T10:03:03.993 に答える