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

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

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

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

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

快速回答是:您提供的信息是不可能的。

但是,如果您打开的文件句柄或任何相关 flag/variable 受到保护,gtest 的一项技术是从您的 class 继承并使用派生的 class 来访问该数据,并对其进行测试。

附带说明一下,构造函数不应做任何事情:在您的示例中,假设文件系统出于任何原因不允许您打开文件。这对 class 行为有何影响?你不能说。因此,您的 class 可能有未定义的行为,您无法控制它。
出于同样的原因,更糟糕的是 throw exception 建议。在您的构造函数中使用依赖项注入或使您的 class 成为模板 class,以便您可以控制注入的策略。