Catch2可以用C语言吗?

Ash*_*mar 4 c c++ unit-testing catch2

我正在编写一个 dll,它支持与 C 和 C++ 语言应用程序的接口。dll 本身是用 C++ 编写的,所以问题是我可以使用 Catch2 框架对 C 和 C++ 应用程序进行单元测试吗?

我需要注意哪些事项?有没有任何人可以建议的替代方案?

eer*_*ika 7

测试必须用 C++ 编写。

要测试一个函数,您只需要能够调用它即可。因此,这个问题相当于“C 函数可以从 C++ 调用吗?”。

在大多数情况下,答案是肯定的。有一个“语言链接”功能就是为了这个目的。有一些 C 不兼容的例外情况,例如名称为 C++ 关键字(如 )的函数delete。要调用此类函数,您需要用 C 语言编写一个具有兼容名称的包装函数,并从用 C++ 编写的测试中调用该包装函数。