我喜欢用我的C++单元测试使用catch。 我的目标是比较std::array
和std::vector
。我创造了这个失败的例子。CATCH单元测试C++比较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
REQUIRE(方向== false_direction) 带扩展: {?} == {?}
如何显示实际值和预期值?我喜欢在std::array
与std::vector
的违反REQUIRE
条件中具有相同的显示。
我使用最新版本的catch(v1.10.0)。
这肯定会起作用,但会降低测试代码的可读性。 – schorsch312
@ schorsch312,改进后的解决方案更加清洁,可重复使用且不会影响测试输出信息 –