节点JS – C ++插件的testing策略

我为Node JS编写了一个或两个本地C++模块,但总是倾向于在Javascript编写模块的testing。 这是一个有效的testing策略,还是有更好的方法来testing(也可能是debugging)本机模块代码?

纯粹主义者可能会说这是“一体化”testing,而不是“单元”testing。 但我个人不介意。 实际上,由于你的模块是从JS中使用的,所以testing这个方面也是有意义的,如果你所有的testing都是这样完成的话,那么你真的彻底地testing了JS-> C ++调用。

所以我认为这是有效的策略。 如果它也足够快(JS-> C ++testing套件的开销就像1秒钟),我会坚持下去。

如果JStesting套件很慢,我会重新考虑它,并用一些C ++框架(调用模块的公共API的C ++部分)来添加纯粹的C ++unit testing。

(我亲自尝试https://github.com/unittest-cpp/unittest-cpp作为第一个,并坚持下去,因为我喜欢它的语法和“复杂性”,build立快速,没有依赖关系,当我在以前编译过的所有东西都是“暖”的模式下,做小的C ++更改和重新运行testing通常需要大约0.5s来编译+运行(〜数百个简单testing)+显示结果。

如果你这样做,你仍然应该在JS端进行一些集成testing,以validation模块在JS中调用时的效果,而不仅仅是在C ++中。

如果您问如何编译+从纯JS分开运行:取决于您的环境设置,我使用单独的IDE来处理C ++源。 这也让我也可以自然地debuggingC ++。