0

C++ で独自のクラス DoubleMatrix を定義しました。次元の不一致や不一致の数など、さまざまなエラー メッセージで gtest 単体テストを作成するにはどうすればよいですか?

このコードのようなものを実現する必要があります

for (int i = 0; i < x.size(); ++i) {
  EXPECT_EQ(x[i], y[i]) << "Vectors x and y differ at index " << i;
}

しかし、次のように呼び出す必要があります。

DoubleMatrix a, b;
EXPECT_EQ(a, b) 

また

DoubleMatrix a, b;
double epsilon = 0.0001;
EXPECT_NEAR(a, b, epsilon)
4

1 に答える 1

1

同じことを行うカスタム述語を定義できます。

詳細については、 https://github.com/google/googletest/blob/master/googletest/docs/advanced.mdを確認してください。(リンクの「より良いエラーメッセージの述語アサーション」セクションを確認してください)

たとえば、次の関数を使用できます。

bool foo(DoubleMatrix a, DoubleMatrix b) {
// do the comparison and return true or false }

これを EXPECT_PRED2(foo, a, b); 経由で使用します。

于 2013-01-05T17:55:59.257 に答える