0

我们使用 Catch 作为测试框架,对其可用性非常满意。

我计划为一个新的图表小部件实施一系列简单的单元测试。图表小部件只能通过简单的图像比较来正确测试。

为此,我需要将小部件的当前图像与之前存档的参考图像进行比较。现在,我需要为每个测试部分发明一个文件名,这很麻烦,应该自动完成。

可以将 a 中的电流导出SECTIONTEST_CASE字符串吗?

以下示例说明了我想要实现的目标:

TEST_CASE("A") {
   SECTION("B") {
      SECTION("C") {
         std::string uniqueName=currentSection();
      }
   }
}

现在,uniqueName充其量应该包含类似的东西A.B.C,但是如果在扩展测试后它保持不变,那么独特的东西也足够了。

4

1 回答 1

1

您似乎正在寻找一种可靠的“类似路径”的命名方案,以便您可以保存以前捕获的图像进行比较,这是一个好主意。但是您还谈到扩展测试 - 如果您添加更多部分,之前捕获的图像是否需要重命名?

在幕后,Catch 使用宏根据文件名和行号 ( docs ) 生成唯一的 TEST_CASE 或 SECTION 名称——这不是稳定的(也不应该如此)——它只是一种获得唯一引用的方法。IIRC 测试和部分名称纯粹是为了方便用户。不幸的是,无法访问该部分的名称:source

于 2019-02-06T10:40:46.217 回答