使用 gtest 测试构造函数内部条件的方法是什么?

What is the way to test the conditions inside the constructor with gtest?

本文关键字:方法 是什么 条件 内部 gtest 测试 构造函数 使用      更新时间:2023-10-16

我的类的构造函数打开一个文件并从中读取一些数据。构造函数不接受任何参数。

文件打开部分必须在构造函数内部完成。

使用 gtest 测试此类构造函数内部条件的方法是什么?

快速回答是:没有办法给出您提供的信息。

但是,如果您打开的文件句柄或任何相关的标志/变量受到保护,则使用 gtest 的一种技术是从您的类继承并使用派生类访问该数据并对其进行测试。

作为旁注,构造函数不应该做一些事情:在你的例子中,假设文件系统出于任何原因不允许你打开文件。这对类行为有何影响?你不能说。因此,您的类中可能有未定义的行为,并且您无法对其进行任何控制。
出于同样的原因,更糟糕的是抛出异常建议。在构造函数中使用依赖关系注入,或者使类成为模板类,以便可以控制注入的策略。