Articles of 摩卡

Sinon – 如何存根嵌套函数?

道歉,如果这是一个简单的问题,我是相对较新的节点和Sinon。 我努力想弄清楚如何断言在Nodejs中调用了一个嵌套的asynchronous函数。 我正在使用摩卡,柴,sinon和请求( https://github.com/request/request ),但认为我遗漏了一些基本的部分。 在my_app.js里面的例子 – var request = require('request'); function MyModule() { }; MyModule.prototype.getTicker = function(callback) { request('http://example.com/api/ticker', function(error, response) { if (error) { callback(error); } else { callback(null, response); } }); }; exports.mymodule = new MyModule(); 在testing里面。 我正在试图剔除请求并提供一些虚拟数据返回。 但我不断收到一个错误“请求未定义”在我创build存根的行上。 var myApp = require('../my_app.js') ,assert = require("assert") ,chai = require('chai') ,sinon = require('sinon') […]

航行js运行testing

我试图运行我的帆unit testing(使用摩卡和伊斯坦布尔) 运行时 grunt test 我得到的错误 1) "before all" hook 2) "after all" hook 0 passing (5s) 2 failing 1) "before all" hook: Error: timeout of 2000ms exceeded at null.<anonymous> (/vagrant/node_modules/mocha/lib/runnable.js:157:19) at Timer.listOnTimeout [as ontimeout] (timers.js:112:15) 2) "after all" hook: ReferenceError: sails is not defined 设置似乎没有find我的风帆,但是在做 which sails 我明白了 /usr/local/node/node-default/bin/sails 并运行sails lift工作正常 这是我的项目中的摩卡testing文件 //boostrap.test.js var […]

摩卡运行与NPMtesting,但不正常的摩卡CLI命令

我试图了解在这种情况下我做错了什么。 在我的package.json中有一个Node.js项目 "scripts": { "test": "mocha –recursive ./src/setup/*.js ./test/**/*.js" }, "dependencies": { "mocha": "^2.2.5" } 当我运行'npmtesting'时,摩卡testing正确运行: $ npm test (successful run) 但是,当我尝试只运行我的package.json在那里的摩卡指令 $ mocha –recursive ./src/setup/*.js ./test/**/*.js" 这个错误与: -sh: mocha: command not found 我没有摩卡全球安装,我只有通过npm安装它到这个特定的项目。 如果我安装摩卡全球然后它的作品。 为什么当我在当前目录的node_modules中只安装了mocha,而它却使用'npm test'呢?

摩卡全球范围内的问题

我正在使用我正在使用的全局对象的mochatesting时遇到了一个大问题。 我能够产生下面的MRE,它没有给出完全相同的错误,但是例证了有问题的(越野车?)行为。 任何有识之士将不胜感激。 我在/lib有以下main.js文件: exports.exec = function(){ console.log(test); } 接下来在/test/test.js : var should = require('should'); var main = require('../lib/main'); global.test = {something: 1}; describe('normal test', function(){ beforeEach(function(){ global.test = {another: 2}; }), afterEach(function(){ delete global.test; }); it ('might work with global', function(){ main.exec(); }) }); 最后,这是test/test2.js : var should = require('should'); var main = require('../lib/main'); […]

在节点package.json中,使用额外的参数从另一个脚本调用脚本,在这种情况下添加mocha观察器

在节点的package.json中我想重用一个我已经在'脚本'中的命令。 这是一个实际的例子 而不是(注意观看脚本中的-w ): "scripts": { "test" : "./node_modules/mocha/bin/mocha –compilers coffee:coffee-script/register –recursive -R list", "watch": "./node_modules/mocha/bin/mocha –compilers coffee:coffee-script/register –recursive -R list -w", } 我想有类似的东西 "scripts": { "test" : "./node_modules/mocha/bin/mocha –compilers coffee:coffee-script/register –recursive -R list", "watch": "npm run script test" + "-w", } 这不工作(不能在json中做string连接),但你应该得到我想要的 我知道npm脚本支持: – &(并行执行) – &(顺序执行) 所以也许有另一种select?

Node.JS用MochatestingDOM吗?

我想在我的Node.JS应用程序中使用Mochatesting框架做一些简单的视图testing… 例如,我想testing一下页面上的<ol>是否有n <li>孩子,给定我在testing中设置的logging数。 我尝试使用杏做这个,当我得到它的工作,当它失败的错误信息是非常无益的…而且,它并不总是工作。 我所喜欢的是testingHTML元素的响应主体的简单方法,所以我可以确定它们是否与他们应该显示的数据匹配。 这是我目前的状态testing: https : //gist.github.com/2330685 任何人都知道我可以做到这一点?

节点摩卡testing日志保存到磁盘

需要将testinglogging保存到磁盘 我已经尝试了下面的代码 mocha -R spec test/**/*_test.js > report 假设任何testing用例失败,它不会login到“报告”文件。 请build议最好的方式来loggingtesting报告。

断言在摩卡testing中打破asynchronousfunction

我正在构build一个节点模块,并试图尽我所能对它进行unit testing。 我已经设置了摩卡和柴做testing处理。 我有一个问题,testing我的asynchronous方法(返回承诺的方法)。 在下面的testing中,我正在testing一个“升级”对象的方法。 it('Should return a list of versions for the default git repo', function (done) { fs.writeFileSync(appSetup.CONFIG_FILENAME, JSON.stringify(appSetup.DEFAULT_CONFIG)); var upgrade = new Upgrade({ quiet: true }); upgrade.getVersions().then(function (versions) { assert(versions && versions.length > 0, 'Should have at least one version.'); assert.equal(1, 2); // this throws the exception which causes the test case […]

用于Visual Studio的节点工具摩卡testing没有find摩卡模块

我有一个从Web Storm导入到Visual Studio的节点项目。 摩卡testing在Web Storm中运行良好,但在Visual Studio中,它们根本不运行。 我已经在相关文件上设置了testing框架,testing发现阶段正确地定位了它们。 当我运行testing时,即使我修改了系统,以至于他们必须失败,他们也会得到一个绿色的勾号。 如果我点击一个testing的输出,然后我看到错误: NTVS_ERROR:无法find摩卡包。 摩卡必须安装在当地的项目… 我在本地安装了Mocha,卸载并重新安装,但没有任何区别。 我已经设法得到一些更具体的错误信息,编辑mocha.js文件来打印出什么错误。 在detectMocha函数中发生问题。 我现在在日志中得到的例外是: [错误:找不到模块'C:\ projects \ FastLaneVS“\ node_modules \ mocha'] code:'MODULE_NOT_FOUND' 现在我的假设是这个额外的双引号后我的项目目录是问题。 我已经回到run_tests.js并打印出argv数组来查看项目目录来自哪里,而且确实已经在调用函数的时候附加了它。 现在,我很高兴地接受,我已经做了一些事情,并添加了这个引用的地方,但我找不到它。 我也不明白为什么find_tests应该工作,因为它调用相同的方法,并正确传递项目目录。 在我的项目中,它的目录就像。 我已经在记事本++中检查了sln和nsproj文件,试图find一个虚假的双引号。 我正在使用VS pro 2013更新4与节点工具1.0.21029.05 我可以修改摩卡亚军修剪尾随双引号,但任何想法如何我可以正确地解决这个问题将是伟大的。

如何testingnode.js websocket服务器?

我正在使用标准configuration的sockjs。 var ws = sockjs.createServer(); ws.on('connection', function(conn) { conn.on('data', function(message) { wsParser.parse(conn, message) }); conn.on('close', function() { }); }); var server = http.createServer(app); ws.installHandlers(server, {prefix:'/ws'}); server.listen(config.server.port, config.server.host); wsParser.parse函数是这样工作的: function(conn, message) { (…) switch(message.action) { case "titleAutocomplete": titleAutocomplete(conn, message.data); break; (…) // a lot more of these } 交换机中调用的每个方法都会向客户端发回消息。 var titleAutocomplete = function(conn, data) { redis.hgetall("titles:"+data.query, […]