Articles of 摩卡

mocha节点检查器不能使用“debugging器”命令

我正在使用摩卡来testing我的代码。 我正在使用节点检查器来debugging我的代码。 bash mocha test/test.* –debug-brk 这工作,但不是很好。 它停在摩卡的第一行代码。 我希望它停止在我的代码。 我尝试使用“debugging器”关键词做一个手动断点,但一些如何不停止在那里。

两个文件使用超级摩擦引起EADDRINUSE摩卡

我使用supertest来unit testing我的服务器configuration和路由处理程序。 服务器configurationtesting在test.server.js ,路由处理testing在test.routes.handlers.js 。 当我使用mocha .运行所有的testing文件mocha . ,我得到EADDRINUSE 。 当我单独运行每个文件时,一切都按预期工作。 这两个文件定义并要求supertest, request = require('supertest')和express服务器文件app = require('../server.js') 。 在server.js ,服务器是这样启动的: http.createServer(app).listen(app.get('port'), config.hostName, function () { console.log('Express server listening on port ' + app.get('port')); }); 我的实现有什么问题吗? 运行testing时如何避免EADDRINUSE错误?

如何在Webstorm上使用mocha运行unit testing?

我试图直接在WebStorm IDE上运行摩卡testing,但没有任何成功。 这是我的jsTestDriver.conf文件: server: http://localhost:4224 load: – node_modules/mocha/mocha.js – node_modules/chai/chai.js – node_modules/requirejs/require.js – mocha-jstd-adapter/src/MochaAdapter.js – routes/*.js test: – test/*.js timeout: 90 现在我正在看一下正常工作的buster-format模块。 任何帮助表示赞赏(如果我这样做,我会发布解决scheme)。

在chaijs做unit testing有关expect.throw的问题

我正在使用chaocha和mochajs进行unit testing。 这是chaijs的文件。 http://chaijs.com/api/bdd/ 根据文档,它可以检查函数是否抛出exception。 所以,用这个代码: var expect = require("chai").expect; describe("Testing", function(){ var fn = function(){ throw new Error("hello"); }; //map testing describe("map", function(){ it("should return error",function(){ expect(fn()).to.not.throw("hello"); }); }); }); testing应该说“通过”? 它期待一个错误,函数fn正在给它。 但是我得到这个: 11 passing (37ms) 1 failing 1) Testing map should return error: Error: hello at fn (/vagrant/projects/AD/tests/shared/functionalTest.js:13:29) at Context.<anonymous> (/vagrant/projects/AD/tests/shared/functionalTest.js:17:11) at Test.Runnable.run […]

Nodejs – 使用MochatestingAWS

我在为使用AWS和graphicsmagick的以下nodejs代码编写testing时遇到了麻烦。 我试图search如何编写async的waterfall方法testing的例子,但没有任何明确的结果。 // dependencies var async = require('async'); var AWS = require('aws-sdk'); var gm = require('gm').subClass({ imageMagick: true }); var util = require('util'); // get reference to S3 client var s3 = new AWS.S3(); exports.AwsHandler = function(event, context) { // Read options from the event. console.log("Reading options from event:\n", util.inspect(event, {depth: 5})); var srcBucket = […]

如何在特定的testing上运行摩卡上的“后”代码?

编辑:这个问题被回答,但我有另一个类似的问题,我不想打开一个新的线程。 我正在使用摩卡和柴来testing我的项目。 作为我的代码的一部分,我创build一个新的用户,并将其保存在我们的数据库(所以testing用户可以在我们的应用程序执行各种方法)。 一般来说,每次testing后,我想运行一个代码块,从DB中删除用户,我使用“AfterEach”挂钩。 我的问题是,我有1testing(可能会在未来更多),这不会创build一个用户(例如,'尝试login而无需注册'),所以我的AfterEach代码收到错误(不能删除的东西不存在)。 摩卡是否提供了在某些testing中禁用“AfterEach”的方法? 或者一些其他解决scheme,我的问题。 编辑:添加的问题:我的AfterEach挂钩涉及一个asynchronous方法,它返回一个承诺。 在摩卡文档中,我只看到了一个与callback一起工作的asynchronous钩子的例子。 我应该如何使用返回promise的afterEach钩子

用Mocha和ChaitestingExpress和护照OAuth2

我有一个使用Express和Passport的应用程序。 我正在使用Passport的Google OAuth2策略。 我有几条路线需要通过这个策略login。 目前我正在使用Mocha和Chai进行集成testing,但是我不确定如何绕过或使用某些路由所需的OAuth2身份validation。 例如,这是我的一个testing: it("should list a single item on /items/<id> GET", function(done) { chai.request(server) .get('/items/' + id) .end(function(err, res) { res.should.have.status(200); res.should.be.json; res.body.should.be.a('object'); res.body.should.have.property('description'); done(); }); }); 我的路线为/items/:id router.get('/items/:id', auth.isLoggedIn, function(req, res) { var item = getItem(); res.json(item); }); /items/:id需要login。 有没有办法绕过logintesting,或嘲笑一个用户,我的集成testing将工作?

sinon存根不替代function

我正在尝试使用sinon stubreplace可能需要时间的函数。 但是当我运行testing时,testing代码似乎没有使用sinon stub。 这是我试图testing的代码。 function takeTooLong() { return returnSomething(); } function returnSomething() { return new Promise((resolve) => { setTimeout(() => { resolve('ok') }, 1500) }) } module.exports = { takeTooLong, returnSomething } 这是testing代码。 const chai = require('chai') chai.use(require('chai-string')) chai.use(require('chai-as-promised')) const expect = chai.expect chai.should() const db = require('./database') const sinon = require('sinon') require('sinon-as-promised') describe('Mock […]

Node.js – 简单的Restify POST摩卡testing失败

我有一个简单的Node.jsrest服务器使用Restify单个POST服务。 我正在尝试编写一个简单的Mochatesting,但是它会失败并且超时,尽pipeREST控制台testing(浏览器插件)成功。 我的服务器代码: /** * Module dependencies */ var restify = require('restify'); var events = require('events'); var util = require('util'); /** * Create App */ var server = restify.createServer({ name: 'test', version: '0.0.1' }); var eventsEmitter = new events.EventEmitter(); /** * Configuraion */ server.use(restify.acceptParser(server.acceptable)); server.use(restify.queryParser()); server.use(restify.bodyParser()); /** * Routes */ server.post('/post', function (req, res, next) […]

节点上的Mocha中的XMLHttprequest

我正在尝试使用node-xmlhttprequest 。 所以如果我这样做 // f.js (function() XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest xhr = new XMLHttpRequest() xhr.open('GET', "http://url-bla-bla.json", true) xhr.onreadystatechange = function(){ console.log("xhr "+JSON.stringify(xhr)) } xhr.send() )() 并将其称为node f (假设Access-Control-Allow-Origin不是http://url-bla-bla.json链接的问题 – 它起作用 但如果我尝试它包装同样的东西到摩卡规格 describe('foo',function(){ it('xhr test',function(){ XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest xhr = new XMLHttpRequest() xhr.open('GET', "http://url-bla-bla.json", true) xhr.onreadystatechange = function(){ console.log("xhr "+JSON.stringify(xhr)) } xhr.send() } } 并与mocha f运行(我甚至不必包装在摩卡规格) 它将无法正常工作并且失败,并且readyState […]