小编Gau*_*mar的帖子

如何在同一个文件中定义调用函数时在C中模拟函数?

我试图在C中模拟一个函数,当函数及其调用函数在不同的文件中定义时,mocking工作正常.但是当两个函数(函数本身及其调用者)在同一文件中定义时,不会调用模拟函数.


情况1 :

//test.c

#include <stdio.h>

/*mocked function*/
int __wrap_func() {
   printf("Mock function !!!\n"); 
}

/*caller function*/
int myTest() {
  return func();
}

int main() {
    myTest();
    return 0;
}

//file.c
#include<stdio.h>

/*function need to be mocked*/
int func() {
  printf("Original function !!!\n");
    }
Run Code Online (Sandbox Code Playgroud)

案例2:

//test.c
#include <stdio.h>
extern int myTest();
/*mocked function*/
int __wrap_func() {
  printf("Mock function !!!\n");
}

int main() {
    myTest();
}
//file.c
#include<stdio.h>

/*function need to be mocked*/
int func() {
  printf("Original function !!!\n");
}

/*caller …
Run Code Online (Sandbox Code Playgroud)

c linux gcc c++11 cmocka

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

标签 统计

c ×1

c++11 ×1

cmocka ×1

gcc ×1

linux ×1