当C/C++中涉及两个进程时,如何使用伪函数框架

How fake function framework can be used when 2 processes are involved in C/C++?

本文关键字:进程 两个 何使用 框架 函数 C++      更新时间:2023-10-16

我有一些C代码(我的测试对象),它正在与一些外部库交互。为了进行一些组件测试,我为外部库编写了一个存根。我使用谷歌测试框架来编写测试用例。我在我的测试对象和谷歌测试之间插入了一些信号,这意味着我有两个进程。1个用于google测试,1个用于我的测试对象。一切都很好。

现在,我不想使用存根库,而是希望使用Fake Function Framework(fff.h)在编译时自动生成存根。我知道如何生成存根,但问题是,如果我们有一个进程,它会起作用,但我想将其用于多个进程。由于存根函数是在编译时生成的,是否有任何方法可以从另一个进程访问它们?

您的fff存根可以编译到归档文件(静态库)中,然后静态链接到单元测试二进制文件中。没有理由不能与多个单元测试二进制文件共享同一个库。

也可以将存根编译到一个动态库中,但与多个测试二进制文件动态共享库通常没有意义,因为您的单元应该相互独立地进行单元测试。树桩可能不会重新进入。