私はC++ユニットテストにcatchを使用します。 私の目標は、std::array
とstd::vector
を比較することです。私はこの失敗例を作りました。C++のCATCHユニットテストはstd :: arraysを比較します
#define CATCH_CONFIG_MAIN
#include "catch.hpp"
TEST_CASE("Vector") {
std::vector<double> direction = {0.1, 0.3, 0.4};
std::vector<double> false_direction = {0.1, 0.0, 0.4};
REQUIRE(direction == false_direction);
}
TEST_CASE("Array") {
std::array<double, 3> direction = {0.1, 0.3, 0.4};
std::array<double, 3> false_direction = {0.1, 0.0, 0.4};
REQUIRE(direction == false_direction);
}
この試験の出力はstd::vector
のチェックのためで膨張して(方向== false_direction) を必要とする: {0.1、0.3、0.4} == {0.1、0.0、0.4 }
とstd::array
が膨張して(方向== false_direction) を必要とする場合: {?} == {?}
実際の値と期待値を表示するにはどうすればよいですか?私はstd::array
の違反した状態で非常に同じディスプレイをREQUIRE
のstd::vector
のように持っています。
最新バージョンのcatch(v1.10.0)を使用しています。
これは確かに機能しますが、テストコードの可読性が低下します。 – schorsch312
@ schorsch312、改善されたソリューションは、よりクリーンで、再利用可能で、テスト出力情報に妥協することはありません –