【问题标题】:best way to specify paths for external text files in the Catch2在 Catch2 中指定外部文本文件路径的最佳方法
【发布时间】:2019-11-21 16:47:55
【问题描述】:

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

我在docs 中找不到它,而且,尽管它们有一些与此类似的问题(例如here),但没有一个专门与 Catch2 相关。

【问题讨论】:

    标签: c++ unit-testing


    【解决方案1】:

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

    避免将测试与外部文件耦合的一种方法是遵守single responsibility principle 并将函数拆分为两个模块:一个读取文件,然后将数据“提供”给解析它的模块.

    测试解析逻辑很简单:您可以在单元测试源文件中包含随机字符串,无需管理外部文件。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-12
      • 2011-01-30
      • 1970-01-01
      • 2013-06-27
      • 2010-09-23
      相关资源
      最近更新 更多