node.js - 单元测试 C++ v8 插件

标签 node.js unit-testing v8

我们正在为 node.js 编写 v8 插件。

插件(如您所知)是一个 C++ dll。

我们如何对此进行单元测试?

简单的方法是使用 node.js 脚本从插件 dll 中调用我们导出的函数。但这不是真正的单元测试,因为它是跨语言的。

有没有人成功地为他们的插件 dll 编写了 C++ 单元测试?

我们已经尝试过,但遇到了意外错误 - 我们怀疑这是因为 node-gyp 库期望在 node.exe 的上下文中调用所有内容,并且因为我们的单元测试使用插件 dll“独立”,一些事情没有正确设置,导致测试失败。

如果您已设法对 v8 插件使用 C++ 单元测试,请您详细说明执行此操作的最佳方法以及需要注意的事项?

问候, 拉伸(stretch)

最佳答案

我也在考虑这个问题。但是除非你真的有很多 cpp 逻辑,否则只编写 cpp-js 组合并对 js 实现进行单元测试是完全可以的,正如在 Nan-library here 中观察到的那样.更少的逻辑在这里意味着,在最好的情况下,cpp 实现无论如何只是 API 胶水。

当您确实拥有自定义逻辑并编写 Nan@2 风格的类(因此,直接的 cpp)时,您当然可以像常规 cpp 一样通过包含它的 header 来测试它并做一些......

void testEquality()
{
  CPPUNIT_ASSERT( /* some test*/ );
}

关于node.js - 单元测试 C++ v8 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28824530/

相关文章:

javascript - 如何将 mongoDB 对象传递给 Javascript/JS.Node 中的所有原型(prototype)函数?

mysql - 如何让我的机器人向人们发送消息,告诉他们他们的余额?

node.js - 身份验证后如何将用户重定向回同一页面?

c# - 如何在 MSTest DataRow 中将属性作为参数传递

javascript - 从 HTML 数据运行 Javascript

javascript - 并发是 JavaScript 语言的一个特性吗?

javascript - 将新的卡片对象推送到嵌套的对象数组中

unit-testing - 从 reduceByKey() 调用函数时单元测试期间的导入错误

python - 使用正则表达式匹配 HTML 中的一对注释

javascript - 两次创建一个对象会产生不同的结果