小编Ore*_*ols的帖子

C中的函数模拟?

我正在编写一个单元测试来检查一些 API 调用。我正在使用检查进行测试。我的模块是用 CMake 构建的(如果重要的话,idk)。

我的测试调用一个函数(我需要测试),这个函数调用另一个二进制文件。

它的简化版本看起来像这样。

/* unitTest.c */

#include "libraryAPI.h"
void letsMakeACall(void)
{
   ck_assert_eq(foo("water"), 0);
}

-- Module I am working on---
/*libraryAPI.c*/
#include "legacyLib.h"

void foo(const char *drink )    
{

    if (checkDrink(drink)!=0)
    {
       return 1;
    }else
    {
       return 0;
    }
}


----LEGACY BINARY---
/*legacyLib.c*/

static const char* expected = "water";

void checkDrink(const char *drink)
{
    if(drink == expected)
     {
        /*There are also a dozen functions being called which depend on legacy module initialisation*/
        return 0;
     }else{
        return …
Run Code Online (Sandbox Code Playgroud)

c unit-testing mocking linux-device-driver linux-kernel

5
推荐指数
1
解决办法
1449
查看次数