2017-06-20 7 views
1

私のようなものがある場合:GoogleTestによるコンパウンドテスト?

ASSERT_TRUE(RANGE(val1, val2, abs_err) || RANGE(val1, val3, abs_err)); 

どのように私はASSERT_NEARの代わりASSERT_TRUEを使用することになりましたか?

私は文を以下のように2つのASSERT_NEAR文に分割しようとしましたが、テストは失敗します。

ASSERT_NEAR(val1, val2, abs_err); 
ASSERT_NEAR(val1, val3, abs_err); 

答えて

1

このユースケースは、次の2つの条件のいずれかに該当する必要があります。 ::testing::AnyOf(m1,m2,...)を使用してください。マッチャーの世界でASSERT_NEAR(lhs,rhs,max_error)の等価

::testing::DoubleNear(rhs,max_error)ある - ので、あなたの例では、次のようになります。 - ::testing::AllOfを使用する - 実際にあなたの試みはちょうど同じです

ASSERT_THAT(val1, AnyOf(DoubleNear(val2, abs_err), 
         DoubleNear(val3, abs_err))); 

あなたの条件の両方に該当する必要がある場合は、 AllOf - それが失敗した理由です。

+0

ありがとうございました!私はGoogleMockのことを調べるとは思わなかった。 –

関連する問題