Files
PathEditor/tests/mocks/mock_windows.h
T
Serendipity cf19a37a97 feat(test): 添加单元测试框架并完善国际化支持
- 新增 CMake 测试框架配置,支持 safe_string、string_ext 和 path_manager 模块的单元测试
- 实现 Windows API Mock 机制,便于测试编码转换函数
- 添加 error_code 模块的字符串表示函数,支持英文错误日志
- 在 UI 回调函数中集成国际化翻译,覆盖新建、编辑、导入导出等操作提示
- 扩展 string_list 功能,新增重复路径检查函数
- 更新翻译文件,同步所有用户界面的中英文文本
2026-04-30 11:38:05 +08:00

55 lines
1.2 KiB
C

/*
* mock_windows.h
* Windows API Mock 头文件
* 用于单元测试中模拟 Windows API
*/
#ifndef MOCK_WINDOWS_H
#define MOCK_WINDOWS_H
#ifdef TESTING
#include <windows.h>
#include <wchar.h>
/* Mock 计数器,用于验证调用 */
extern int mock_MultiByteToWideChar_call_count;
extern int mock_WideCharToMultiByte_call_count;
/* 设置 Mock 返回值 */
void mock_set_MultiByteToWideChar_return(int ret);
void mock_set_WideCharToMultiByte_return(int ret);
/* Mock MultiByteToWideChar */
int mock_MultiByteToWideChar(
UINT CodePage,
DWORD dwFlags,
LPCSTR lpMultiByteStr,
int cbMultiByte,
LPWSTR lpWideCharStr,
int cchWideChar);
/* Mock WideCharToMultiByte */
int mock_WideCharToMultiByte(
UINT CodePage,
DWORD dwFlags,
LPCWSTR lpWideCharStr,
int cchWideChar,
LPSTR lpMultiByteStr,
int cbMultiByte,
LPCSTR lpDefaultChar,
LPBOOL lpUsedDefaultChar);
/* 替换宏(在测试源文件中定义) */
#ifdef REPLACE_WINDOWS_API
#define MultiByteToWideChar mock_MultiByteToWideChar
#define WideCharToMultiByte mock_WideCharToMultiByte
#endif
#else
/* 非测试模式下为空 */
#define REPLACE_WINDOWS_API 0
#endif /* TESTING */
#endif /* MOCK_WINDOWS_H */