gtest单元测试目标配置文件路径
gtest unit tests target configuration file path
在我的 C++ 应用程序中,我有一个文本文件 (dataFile.txt) 安装在 Linux 目标机器的以下路径中:
/SoftwareHomeDir/Configuration/Application/dataFile.txt
此文件存在于我的 Rational ClearCase 源代码环境中的路径下:
/ProjectName/config/Application/dataFile.txt
我正在 gtest 中开发一个单元测试,它执行以下操作:
从dataFile.txt
读取特定数据,如果数据不存在则将其写入文件。
1) 我避免创建环境变量来检查我是在编译环境还是在目标机器中。然后在最终版本中添加额外的测试代码。我真的很想把测试代码和最终代码分开。
2) 我没有使用任何 IDE(没有 visual studio、没有 qt 等),只是记事本++
3) 编译。服务器是共享的(使用用户名访问,但是根文件夹“/”是共享的。这意味着如果我创建路径 "/SoftwareHomeDir/Confiugration/Application/dataFile.txt"
,所有用户都可以看到它,如果另一个用户是 运行宁他的 gtest unitTest,他可能会覆盖我的文件。
4) 在最后的代码中,dataFile 的路径是硬编码的,实现一个 filesearch(filename) 方法来寻找在读取文件之前将文件放入整个硬盘。
问题:
我正在寻找在使用 /ProjectName/config/Application/dataFile.txt
的编译环境中对我的代码进行单元测试的解决方案
我的问题的解决方案是按照 link
所述将 gmock 与 gtest 结合起来
我对代码所做的唯一修改是,我没有使用#define 定义配置数据的路径,而是创建了一个函数 getConfigFilePath(),returns 配置文件的硬编码路径位于安装的应用程序。从这里开始,我模拟了 class,在我的模拟中,我调用了一个伪造的 getConfigFilePath() returns,当真正的代码正在执行时,ClearCase 中项目树中配置文件的硬编码路径.这正是我要找的。
在我的 C++ 应用程序中,我有一个文本文件 (dataFile.txt) 安装在 Linux 目标机器的以下路径中:
/SoftwareHomeDir/Configuration/Application/dataFile.txt
此文件存在于我的 Rational ClearCase 源代码环境中的路径下:
/ProjectName/config/Application/dataFile.txt
我正在 gtest 中开发一个单元测试,它执行以下操作:
从dataFile.txt
读取特定数据,如果数据不存在则将其写入文件。
1) 我避免创建环境变量来检查我是在编译环境还是在目标机器中。然后在最终版本中添加额外的测试代码。我真的很想把测试代码和最终代码分开。
2) 我没有使用任何 IDE(没有 visual studio、没有 qt 等),只是记事本++
3) 编译。服务器是共享的(使用用户名访问,但是根文件夹“/”是共享的。这意味着如果我创建路径 "/SoftwareHomeDir/Confiugration/Application/dataFile.txt"
,所有用户都可以看到它,如果另一个用户是 运行宁他的 gtest unitTest,他可能会覆盖我的文件。
4) 在最后的代码中,dataFile 的路径是硬编码的,实现一个 filesearch(filename) 方法来寻找在读取文件之前将文件放入整个硬盘。
问题:
我正在寻找在使用 /ProjectName/config/Application/dataFile.txt
我的问题的解决方案是按照 link
所述将 gmock 与 gtest 结合起来我对代码所做的唯一修改是,我没有使用#define 定义配置数据的路径,而是创建了一个函数 getConfigFilePath(),returns 配置文件的硬编码路径位于安装的应用程序。从这里开始,我模拟了 class,在我的模拟中,我调用了一个伪造的 getConfigFilePath() returns,当真正的代码正在执行时,ClearCase 中项目树中配置文件的硬编码路径.这正是我要找的。