【发布时间】:2018-03-29 01:28:10
【问题描述】:
我喜欢在我的 C++ 单元测试中使用catch。
我的目标是比较std::array 和std::vector。我创建了这个失败的例子。
#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)。
【问题讨论】:
标签: c++ unit-testing stdvector stdarray catch-unit-test