Node JS - c++插件的测试策略

Node JS - Test strategies for C++ plugins

本文关键字:测试策略 插件 c++ JS Node      更新时间:2023-09-26

我已经为Node JS编写了一两个本地C++模块,但总是倾向于为Javascript中的模块编写测试。这是一个有效的测试策略吗?或者是否有更好的方法来测试(也可能是调试)本地模块代码?

纯粹主义者可能会说这是"集成"测试,而不是"单元"测试。但我个人并不介意。实际上,因为你的模块将从JS中使用,所以测试这方面也是有意义的,如果你所有的测试都是这样做的,那么你就真正彻底地测试了JS-> c++调用。

所以我认为这是一个有效的策略。如果它也足够快(JS-> c++测试套件的开销不到1秒),我会继续使用它。

如果JS测试套件很慢,我会重新考虑它,并使用一些c++框架添加纯c++单元测试(调用模块的公共API的c++部分)。

(我个人尝试https://github.com/unittest-cpp/unittest-cpp作为第一个,并坚持使用它,因为我喜欢它的语法和"复杂性",构建速度快,没有依赖关系,当我对之前编译的所有内容处于"温暖"模式时,做小的c++更改和重新运行测试通常需要大约0.5s的编译+运行(~数百个简单测试)+显示结果)。

如果你这样做,你仍然应该在JS端进行一些集成测试,以验证模块在从JS调用时也能工作,而不仅仅是在c++中。

如果你问如何从JS单独编译和运行纯c++:取决于你的环境设置,我使用单独的IDE与c++源一起工作。当然,这也允许我在本地调试c++。