【问题标题】:Determine name of current SECTION [closed]确定当前部分的名称[关闭]
【发布时间】:2019-02-06 07:54:59
【问题描述】:

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

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

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

是否可以将TEST_CASE 中的当前SECTION 导出为字符串?

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

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

现在,uniqueName 最多应该包含类似 A.B.C 的内容,但如果在扩展测试后保持不变,则一些独特的内容也足够了。

【问题讨论】:

    标签: c++ unit-testing catch-unit-test


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢您的回复。看来,我必须想一个不同的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2011-08-13
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多