我使用_cpputes_t来执行c代码的单元测试。
在被测试的源代码中,我有一个静态函数,当从单元测试环境调用时,我希望被“重定向”到函数的“伪造”版本。
比如说,我有这样的东西:
正在测试的源代码:
void my_main()
{
read(int8 address);
}藉此;
static int8 read(int8 address)
{
return something;
}单元测试环境:
TEST(MY_TESTS, READ)
{
my_main();
}在单元测试环境中调用my_main()时,我想重定向
阅读(int8地址):
int8 fake_read(int8 address)
{
//do_something
}正确的方法是什么?我已经尝试了函数指针,而不是注入依赖项,但它不起作用。有什么想法吗?
发布于 2017-04-14 13:19:41
也许您可以利用链接器来完成这个任务:创建两个源文件--一个带有静态函数的实际生成代码,另一个带有模拟实现。
对于测试,链接第二个;和运行您的应用程序的第一个。
发布于 2021-03-03 11:23:24
我知道一个古老的问题但是..。
看看mock_c() support周围的文档
int64_t GetTimeMS (void)
{
mock_c ()->actualCall ("GetTimeMS");
return (mock_c ()->returnValue ().value.longIntValue);
}https://stackoverflow.com/questions/43181948
复制相似问题