问题标签 [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.
node.js - 如何在node.js中的compoundjs应用程序中模拟会话对象
我在 node.js 中有一个复合 js 应用程序。对于某些操作,我有一个过滤器检查“session.user”值的存在,该值仅在成功验证后才会填充。但是,每当为此类操作编写单元测试用例时, session.user 的值就会变得未定义。我使用 supertest、sinon 模块对操作进行获取、发布请求,但由于“session.user”值的未定义值,它不会进行身份验证并被重定向到正确的操作。请帮助我,因为我遇到了同样的问题。
请指导我究竟需要模拟什么,以便我可以验证 session.user 值。提前致谢,
等待肯定的答案,
谢谢,
node.js - 除了在测试中,NodeJS 不会产生子进程
我有以下 NodeJS 代码:
我有一个成功执行的 NodeUnit 测试。使用 phpStorm 调试测试 var unzip被正确分配
但是,如果我将相同的代码作为 Web 服务的一部分运行,则spawn调用不会正确返回,并且服务器会在尝试将on处理程序附加到unzip var的不存在的stdout属性时崩溃。
我曾尝试在 phpStorm 之外运行该程序,但是出于同样的原因,它也会在命令行上崩溃。我怀疑这是测试不必处理的权限问题。Web 服务器生成过程可能会导致生产环境中的混乱,因此可能需要一些额外的权限,但我无法找到(或者我错过了)支持我的假设的文档。
我在 OSX Snow Leopard(通过 MacPorts)上运行 v0.10.3。
为什么我不能正确生成子进程?
更新
对于@jonathan-wiepert
我正在使用原型继承,所以当我创建 Unzipper 的“实例”时,我设置了标准输出和标准错误,即:
这类似于“构造函数注入”的概念。至于你的其他观点,谢谢你的提示。
我得到的错误是:
根据我的调试屏幕截图,从spawn调用返回的对象在不同情况下是不同的。我的测试通过(它检查 ZIP 是否可以正确解压缩),因此在将此代码作为 Web 服务运行时会出现问题。
node.js - 如何使用 Compoundjs 在 node.js 中运行测试
我试图弄清楚如何在复合中运行测试。当我运行 npm test 时,我收到以下错误。
我安装了应该、supertest 和 sinon,但我无法克服这个错误。我也尝试安装 jasmine 并运行它,但我得到 0 个断言......等等。谢谢!
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
node.js - 如何使用 node-inspector 调试 nodeunit
我可以:
- 我可以使用nodeunit测试 node.js 模块。
- 我可以使用node inspector调试我的 node.js express 站点。
但是如何使用节点检查器调试 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 来观看调试时:
- 第一次加载我看到空文件列表
- 第二次加载:找不到页面。
在我的 nodeunit 测试中,我写debugger
了在那里停止调试。但什么都没有。
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 状态。
javascript - 使用 nodeunit 的异步测试用例
我想一个接一个地测试许多方法,一个方法输出必须传递给下一个方法。
例如:我有两种测试方法,称为添加和删除。add 方法的 onsuccess 将返回添加的对象(及其 id)。我想传递给删除方法的同一个对象,以便删除创建的对象。
一种方法是,在这两个函数之外定义节点对象并从这两种方法访问。
我只是想知道这是正确的方法还是有更好的方法。
node.js - Nodeunit - 显式结束测试
我有 2 个nodeunit测试用例,如果第一次失败,我不想运行第二个测试用例。(过程应该跳过测试第二个测试用例的正确结果。)我该怎么做。我已经编写了示例代码,在第一个测试用例中,我指定的期望数量应该是一个。即使第一个测试用例失败,第二个测试用例仍然执行。这里可能是什么问题。
javascript - 如何在咖啡脚本文件中获取错误行号
在node.js express应用程序和nodeunit测试中,我广泛使用咖啡脚本而不将生成的javascript文件保存在磁盘上,以避免javascript 翻译阻塞项目。
当我在 coffeeScript 文件中看到任何错误时,我在控制台中看到:发生错误的文件名和行号(例如 37)/pathTo_File/fileName.coffee:37
:。但是我的咖啡文件中没有第 37 行!!!我那里的线路少了两倍。
我想我的输出javascript文件的第 37 行出现错误,但我没有在磁盘上。仅限 Coffeescript 文件。
那么如何在咖啡脚本文件中获取错误行号?
我知道我可以手动(使用控制台)将我的咖啡脚本文件翻译成js,然后查看行号并猜测我在咖啡文件中遇到错误的哪一行。但也许有更快的东西。
我的 IDE 是 WebStorm,os 是 osX。
node.js - Node.js 中的 doesNotThrow 返回未定义
在我的 NodeUnit 测试中,我有这样一段代码:
但是调用doesNotThrow(...)后functionResult是未定义的,为什么test.doesNotThrow()不返回函数调用的结果呢?那将是相当优雅的。