我正在编写一个支持与C和C ++语言应用程序进行接口交互的dll。该dll本身是用C ++编写的,所以问题是,我是否可以使用Catch2框架来测试C和C ++应用程序的单元测试?
有哪些需要注意的事项?还有没有其他任何可以建议的替代方案?
我正在编写一个支持与C和C ++语言应用程序进行接口交互的dll。该dll本身是用C ++编写的,所以问题是,我是否可以使用Catch2框架来测试C和C ++应用程序的单元测试?
有哪些需要注意的事项?还有没有其他任何可以建议的替代方案?
这些测试必须用C++编写。
为了测试一个函数,你只需要能够调用它。所以,问题等价于“C++可以调用C函数吗?”。
在大多数情况下,答案是肯定的。有一个专门为此目的设计的“语言链接”功能。然而,也存在一些例外情况,例如那些名字与C++关键字(如delete
)不兼容的函数。为了调用这样的函数,你需要在C中编写一个包装函数,并使用兼容名称调用该包装函数来进行C++测试。