问题标签 [nodeunit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1171 浏览

node.js - 如何在node.js中的compoundjs应用程序中模拟会话对象

我在 node.js 中有一个复合 js 应用程序。对于某些操作,我有一个过滤器检查“session.user”值的存在,该值仅在成功验证后才会填充。但是,每当为此类操作编写单元测试用例时, session.user 的值就会变得未定义。我使用 supertest、sinon 模块对操作进行获取、发布请求,但由于“session.user”值的未定义值,它不会进行身份验证并被重定向到正确的操作。请帮助我,因为我遇到了同样的问题。

请指导我究竟需要模拟什么,以便我可以验证 session.user 值。提前致谢,

等待肯定的答案,

谢谢,

0 投票
1 回答
1242 浏览

node.js - 除了在测试中,NodeJS 不会产生子进程

我有以下 NodeJS 代码:

我有一个成功执行的 NodeUnit 测试。使用 phpStorm 调试测试 var unzip被正确分配

phpStorm调试测试截图

但是,如果我将相同的代码作为 Web 服务的一部分运行,则spawn调用不会正确返回,并且服务器会在尝试将on处理程序附加到unzip var的不存在的stdout属性时崩溃。

在此处输入图像描述

我曾尝试在 phpStorm 之外运行该程序,但是出于同样的原因,它也会在命令行上崩溃。我怀疑这是测试不必处理的权限问题。Web 服务器生成过程可能会导致生产环境中的混乱,因此可能需要一些额外的权限,但我无法找到(或者我错过了)支持我的假设的文档。

我在 OSX Snow Leopard(通过 MacPorts)上运行 v0.10.3。

为什么我不能正确生成子进程?

更新

对于@jonathan-wiepert

我正在使用原型继承,所以当我创建 Unzipper 的“实例”时,我设置了标准输出和标准错误,即:

这类似于“构造函数注入”的概念。至于你的其他观点,谢谢你的提示。

我得到的错误是:

根据我的调试屏幕截图,从spawn调用返回的对象在不同情况下是不同的。我的测试通过(它检查 ZIP 是否可以正确解压缩),因此在将此代码作为 Web 服务运行时会出现问题。

0 投票
1 回答
700 浏览

node.js - 如何使用 Compoundjs 在 node.js 中运行测试

我试图弄清楚如何在复合中运行测试。当我运行 npm test 时,我收到以下错误。

我安装了应该、supertest 和 sinon,但我无法克服这个错误。我也尝试安装 jasmine 并运行它,但我得到 0 个断言......等等。谢谢!

0 投票
1 回答
351 浏览

node.js - 使用 Compoundjs 和 mocha 在 nodejs 中进行测试

我使用以下方法从头开始创建了脚手架的 Compoundjs 应用程序:

运行: ./node_modules/.bin/mocha --include test/init.js test/ / .test.js

但是,我只收到以下输出错误:

./node_modules/.bin/mocha --include test/init.js test/ / .test.js

0 投票
2 回答
2561 浏览

node.js - 如何使用 node-inspector 调试 nodeunit

我可以:

但是如何使用节点检查器调试 nodeunit 测试?

我试过了,但没有工作:

  • nodeunit --debug myNodeUnitModule_test.js它不工作。
  • 我试图安装nodebug。并像这样使用它:nodebug /usr/local/bin/nodeunit myNodeunit_test.js但它既不适用于 ubuntu ( No such file or directory) 也不适用于 mac ( env: node\r: No such file or directory)

几乎可以工作 node --debug /usr/local/bin/nodeunit ./routes/edit/bodyTelInfoArraysToObject_test.js

/usr/local/bin/nodeunit命令采用的路径在哪里which nodeunit

得到输出: debugger listening on port 5858 并在那里执行测试。

但是我不能跳入调试:当我localhost:8080在 chrome 中打开 url 来观看调试时:

  1. 第一次加载我看到空文件列表
  2. 第二次加载:找不到页面。

在我的 nodeunit 测试中,我写debugger了在那里停止调试。但什么都没有。

0 投票
1 回答
340 浏览

node.js - nodeunit 测试和 trace.gl

如何使用trace.gl跟踪nodeunit测试

我尝试了3种方式:

  • $ node ~/Dropbox/tracegl.js ./path/To/My/NodeunitTests. 然后在另一个控制台中从该目录运行我的单元测试。

  • $ node ~/Dropbox/tracegl.js `which nodeunit` /path/To/Test/nodeUnitTestFile_test.coffee

  • $ node ~/Dropbox/tracegl.js `which nodeunit` refrence/To/Teset/nodeUnitTestFile_test.coffee -nolib

所有 3 种方式都给出输出:

[trace.GL] 查看您的代码。本产品具有商业许可证。

[trace.GL] WebGL 跟踪 UI:http://localhost:2000

[trace.GL] 检查更新...[trace.GL] 服务浏览器 JS: http://localhost:2080最新。

但是当我打开 url 时,我在http://localhost:2000那里看不到任何跟踪信息。只是初始 tracegl 状态。 没有来自 tracegl 的跟踪信息

0 投票
2 回答
1836 浏览

javascript - 使用 nodeunit 的异步测试用例

我想一个接一个地测试许多方法,一个方法输出必须传递给下一个方法。

例如:我有两种测试方法,称为添加和删除。add 方法的 onsuccess 将返回添加的对象(及其 id)。我想传递给删除方法的同一个对象,以便删除创建的对象。

一种方法是,在这两个函数之外定义节点对象并从这两种方法访问。

我只是想知道这是正确的方法还是有更好的方法。

0 投票
1 回答
778 浏览

node.js - Nodeunit - 显式结束测试

我有 2 个nodeunit测试用例,如果第一次失败,我不想运行第二个测试用例。(过程应该跳过测试第二个测试用例的正确结果。)我该怎么做。我已经编写了示例代码,在第一个测试用例中,我指定的期望数量应该是一个。即使第一个测试用例失败,第二个测试用例仍然执行。这里可能是什么问题。

0 投票
1 回答
1001 浏览

javascript - 如何在咖啡脚本文件中获取错误行号

node.js express应用程序和nodeunit测试中,我广泛使用咖啡脚本而不将生成的javascript文件保存在磁盘上,以避免javascript 翻译阻塞项目。

当我在 coffeeScript 文件中看到任何错误时,我在控制台中看到:发生错误的文件名和行号(例如 37)/pathTo_File/fileName.coffee:37:。但是我的咖啡文件中没有第 37 行!!!我那里的线路少了两倍。

我想我的输出javascript文件的第 37 行出现错误,但我没有在磁盘上。仅限 Coffeescript 文件。

那么如何在咖啡脚本文件中获取错误行号

我知道我可以手动(使用控制台)将我的咖啡脚本文件翻译成js,然后查看行号并猜测我在咖啡文件中遇到错误的哪一行。但也许有更快的东西

我的 IDE 是 WebStorm,os 是 osX。

0 投票
1 回答
261 浏览

node.js - Node.js 中的 doesNotThrow 返回未定义

在我的 NodeUnit 测试中,我有这样一段代码:

但是调用doesNotThrow(...)后functionResult是未定义的,为什么test.doesNotThrow()不返回函数调用的结果呢?那将是相当优雅的。