避免在头文件中包含gtest头文件,可以使用前置声明避免崩溃,具体代码如下:
// MyClass.h 文件
#include
// 前置声明gtest头文件中的相关类和函数
namespace testing {
class Test;
void InitGoogleTest(int*, char**);
}
template
class MyClass {
public:
void func(T val) {
std::cout << val << std::endl;
}
};
// test.cpp 文件
#include "MyClass.h"
#include "gtest/gtest.h"
TEST(MyClassTest, FuncTest) {
MyClass obj;
obj.func(10);
}
int main(int argc, char** argv) {
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
在MyClass.h头文件中不包含gtest头文件,只需要前置声明相关类和函数即可避免崩溃。在test.cpp文件中包含gtest头文件并执行测试。