Articles of 摩卡

在NodeJs中使用摩卡嘲笑

我如何使用NodeJ来嘲笑Mocha中的客户端和服务器。 具体来说,我有以下代码: app.post ('path name', function (req, res) { // Some Action res.send(response); }); 我想模拟req , res参数和testingres (状态,标题,消息)。

确保快速应用程序在每个摩卡testing之前运行

我正在使用ExpressJS,NodeJS,Mongoose和Mocha开发REST API。 问题是我有一个app.coffee文件,负责设置ExpressJS并连接到Mongoose。 我设置的方式是,首先连接Mongoose,如果通过,则启动ExpressJS App。 问题是,在设置Mocha时,我需要确保app.coffee中存在的ExpressJS App在执行任何testing用例之前已经成功启动,包括所有asynchronous代码。 为此,我创build了一个test_helper.coffee,并在其中放置了下面的代码,但是,即使app.coffee中的代码还没有完全完成它的执行,testing用例也会开始执行,这实际上是有意义的: before (done) -> require(__dirname + '/../src/app') done() 简而言之,我想确保ExpressJS应用程序在执行任何testing用例之前已完全完成设置。 我怎么能做到这一点?

摩卡命令给ReferenceError:窗口没有定义

首先它不是重复的问题,因为我已经看过他们。 我正在使用下面的命令 mocha –compilers :./test/babel-setup.js –recursive –watch 给出下面的错误: ReferenceError: window is not defined 在babel-setup.js下面的代码在那里。 require("babel/register")({ compact: false }); 我使用节点0.12.7和“摩卡”:“^ 2.2.5”和“jsdom”:“^ 3.1.2”。 我错过了什么? 我已经安装了该项目的jsdom 。

在mocha中为ts-node覆盖`tsconfig.json`

有没有可能覆盖哪些tsconfig.json ts节点使用时从摩卡调用? 我的主要tsconfig.json包含"module": "es2015" ,但我想只使用"module": "commonjs" ts节点只。 我试过这个 mocha –compilers ts:ts-node/register,tsx:ts-node/register \ –compilerOptions '{"module":"commonjs"}' \ –require ts-node/register test/**/*.spec.ts* 但它没有工作: SyntaxError: Unexpected token import at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:387:25) at Module.m._compile (/usr/lib/node_modules/ts-node/src/index.ts:406:23) at Module._extensions..js (module.js:422:10) at Object.require.extensions.(anonymous function) [as .tsx] (/usr/lib/node_modules/ts-node/src/index.ts:409:12) at Module.load (module.js:357:32) at Function.Module._load (module.js:314:12) at Module.require (module.js:367:17) at require (internal/module.js:16:19) at /usr/lib/node_modules/mocha/lib/mocha.js:222:27 […]

伊斯坦布尔的摩卡testing代码覆盖率

我正试图让伊斯坦布尔工作。 我在伊斯坦布尔运行结束时一直收到这个消息: 没有收集覆盖信息,没有写覆盖信息退出 我已经尝试了一切,我可以在网上find你可以看到: "scripts": { "start": "node ./bin/start.js", "test": "mocha test –no-timeouts", "debug_mocha": "node-debug –no-timeouts _mocha", "eslint": "eslint .", "jshint": "jshint –exclude ./node_modules .", "istanbul": "istanbul cover –include-all-sources –hook-run-in-context node_modules/.bin/_mocha — -u exports -R spec test/**/*", "istanbul2":"istanbul cover node_modules/.bin/_mocha — -u exports -R spec test/**/*", "istanbul1":"istanbul cover node_modules/.bin/_mocha — test/**/*", "istanbul0":"istanbul cover _mocha test/**/*.js", […]

摩卡失败断言造成超时

我正在开始使用NodeJS的摩卡testing框架。 成功断言工作正常,但如果断言失败,我的testing超时。 为了断言我已经尝试了应该和期望。 例如(asynchronous代码) it('should create new user', function(done){ userService.create(user).then(function(model){ expect(model.id).to.be(1); //created user ID done(); }, done) }); 在这里,如果模型id不是1,那么testing超时而不是报告失败的断言。 我确定我做错了什么。 感谢你的帮助。 谢谢!

在testing环境中运行摩卡testing?

我似乎无法告诉摩卡在testing环境中运行我的testing套件。 app.js app.configure('test', function(){ app.set('port', 3002); }); testing/ some-test.coffee app = require('../../app') process.env.NODE_ENV = 'test' describe 'some test', -> it 'should pass', -> 由于我需要的应用程序,当我运行testing,我期望看到 Express server listening on port 3002 而是我看到了 Express server listening on port 3000 在app.js的开发configuration块中设置不同的端口号 Express server listening on port [whatever port I set in development block in app.js] 我无法让我的testing在testing环境中运行。 有什么build议么?

在mocha的afterEach函数中获取testing名称

让我首先说我对node.js和mocha很新颖。 我开始使用tdd方法,我试图从beforeEach和afterEach函数中开始或者刚刚完成的testing,但是我没有运气(我主要对afterEach感兴趣)。 至less我无法想象一个干净利落的做法。 我唯一能想到的就是把testing和套件保存在一个variables中,然后在afterEach()上做一些匹配,看看哪个testing已经完成。 理想情况下,它说“testing名称”,我想有一些像suite.test.name suite('my test suite', function() { beforeEach(function () { console.log('test name'); }); test('first test', function (done) { var testarray = ['1', '3', '5', '7']; testarray.forEach(function(num, index) { console.log('num: ' + num + ' index: ' + index); }, done()); }); afterEach(){ console.log('test name'); } }

如何断言不为空?

我在JavaScripttesting非常新,我想知道如何在摩卡框架断言不为空。

如何使用数据编写摩卡咖啡发布请求testing以testing响应是否匹配?

问题:我如何在摩卡咖啡中写一个post请求testing来testing响应是否匹配? 响应只是一个urlstring,因为它是第三方服务的redirect。 工作示例有效载荷: curl -H "Content-Type: application/json" -X POST -d '{"participant":{"nuid":"98ASDF988SDF89SDF89989SDF9898"}}' http://localhost:9000/api/members member.controller.js // post方法 // Creates a new member in the DB. exports.create = function(req, res) { Member.findByIdAndUpdate(req.body.participant.nuid, { "$setOnInsert": { "_id": req.body.participant.nuid } }, { "upsert": true }, function(err,doc) { if (err) throw err; res.send({ 'redirectUrl': req.protocol + '://' + req.get('host') + '/registration/' […]