为Catch2中的外部文本文件指定路径的最佳方式

best way to specify paths for external text files in the Catch2

本文关键字:路径 最佳 方式 文本 Catch2 外部 文件      更新时间:2023-10-16

我正在为一个从文本文件中读取和解析数据的函数编写一些单元测试,这让我想知道:在Catch2单元测试框架中,为外部文本文件指定路径的最佳方法是什么?

我在文档中找不到它,尽管有一些问题与此类似(例如这里(,但没有一个问题专门与Catch2有关。

在有问题的文件所在的子目录中创建一个子目录怎么样?但是,如果构建树与源树是分开的,那么您需要让构建系统将它们复制到构建树中,或者以某种方式神奇地找出它们所在的路径。实现后者的第一件事是添加源树位置作为命令行参数,方法是在Catch 2中酝酿自己的main,并在调用测试时使用构建系统来填充它。

避免将测试与外部文件耦合的一种方法是遵守单一责任原则,并将功能拆分为两个模块:一个模块读取文件,然后将数据"馈送"到解析它的模块

测试解析逻辑非常简单:您可以在单元测试源文件中使用随机字符串,从而消除管理外部文件的需要。

在这种情况下,您还可以设计类/逻辑,以允许您存根/伪造/模拟处理文件系统的调用。