在我的模块中有宏之类的功能。这对于模块测试来说不是障碍,但对于包含该模块的其他模块来说却是障碍。
我的问题:有没有办法让 .h 文件的一部分仅对 CMock 可见?
例如:
Module_1.h:
#ifdef MODULE_TEST_CMOCK
void FunctionLikeMacro_1(unsigned int x);
unsigned int FunctionLikeMacro_2(void);
#else
#define FunctionLikeMacro_1(x) (HWREGISTER_1 = (unsigned int)x)
#define FunctionLikeMacro_2 ((unsigned int)HWREGISTER_2)
#endif
这是我更喜欢的方式。但是我应该在哪里定义 MODULE_TEST_CMOCK?我无法在 Project.yml 中定义它,因为通过此更改,我对 Module_1 的模块测试将失败。但另一方面,在我对 Module_2 的模块测试中,它需要 Module_1.h 的模拟版本,我不能指望 FunctionLikeMacro_1 和 FunctionLikeMacro_2 的调用。
感谢您的时间。:)