gtest 框架

文章目录
  1. 1. 如何测试DLL文件
  2. 2. 隐式步骤加载
  3. 3. 显式步骤加载

概述:Google Test 测试框架备忘

如何测试DLL文件

隐式步骤加载

步骤

  1. 在测试项目中配置动态库的头文件路径和导入库(.lib文件)。
  2. 直接调用DLL导出的函数,Google Test用例编写与普通函数测试无异
1
2
3
4
#include "dll_header.h" // DLL的头文件 
TEST(DllTest, BasicFunction) {
EXPECT_EQ(dll_add(2, 3), 5); // 直接调用DLL函数
}

适用场景:DLL已明确导出符号,且测试环境能正确加载依赖项。

显式步骤加载

  • 灵活但复杂

步骤

  1. 使用LoadLibrary(Windows)或dlopen(Linux)加载DLL。
  2. 通过GetProcAddressdlsym获取函数指针并调用。
1
2
3
4
5
6
7
8
TEST(DllTest, DynamicLoad) {
HINSTANCE hDll = LoadLibrary(L"mylib.dll");
ASSERT_NE(hDll, nullptr) << "DLL加载失败";
auto func = (int(*)(int, int))GetProcAddress(hDll, "dll_add");
ASSERT_NE(func, nullptr) << "函数未找到";
EXPECT_EQ(func(2, 3), 5);
FreeLibrary(hDll);
}