Tag: 摩卡

在摩卡节点请求选项

我想在我的unit testing中提供自定义标题,目前我的unit testing是 request(sails.hooks.http.app) .post('/myurl') .send(userDetails) .expect('Content-Type', /json/) .expect(200) .end(function (err, res) { if(err) throw err; //do something }); 我想添加标题 var options = { url: 'community', headers: { 'Authorization': 'Bearer ' + authToken } }; 当我在npmjs中看到请求的文档。 它要求我提供选项来请求 request(options, callback); 我如何提供自定义标题在我的情况下,即如果我在unit testing中提供req参数作为选项对象?

Sails.js和Mocha,res.viewtesting

我为我的帆应用程序编写testing,但在控制器中有一些问题。 当用户注册时,我检查重复,如果是的话 – 渲染与错误的表单,如果没有 – 呈现与成功消息的forms。 那么谁能知道如何testing它? 或者,也许你可以build议更好的代码结构,非常感谢。 控制器: User.findOne({ email: req.body.email }, function(err, user) { if(err) return res.json(err) if(!user) { User.create({email:req.body.email, password:req.body.password}).exec(function createCB(err, user){ if(err) return res.json(err); res.view('signup', { message: 'Done, user created'}) }) } else res.view('signup', { message: 'User already exist'}) }) testing: it('should show error if duplicated user – TODO', function (done) […]

节点JS应用程序更好的devise和分离

我用express创build了一个节点应用程序。 我尝试将下面的图层分开,这将使我能够使用unit testing来testing应用程序。 问题是,我不知道如何调用将在post / get / delete应用程序中停止的router.js文件。 server.js文件如下所示 http = require('http'), app = require('./app')(), http.createServer(app).listen(app.get('port'), function (err) { console.log('Express server listening on port ' + app.get('port')); }); 这是app.js文件 var express = require('express'), logger = require('morgan'), bodyParser = require('body-parser'), routesApp = require('./ro/route'); module.exports = function () { var app = express(); app.set('port', process.env.PORT || 3005); […]

Sails js ::testing传递给视图的variables

调节器 module.exports = { index: function (req, res) { res.view({message: 'hello'}); } } 如何testingvariablesmessage是否设置正确? var request = require('supertest'); describe('HomeController', function() { describe('index', function() { it('should return success', function (done) { request(sails.hooks.http.app) .get('/') .expect(200).end(function (err, res) { if (err) throw err; res.body.should.have.property('message'); done(); }); }); }); }); res.body返回{}

unit testing结束承诺链的function

假设我在一个名为UserController的类中有一个函数,它沿着这些行( userService.createUser()返回一个promise)。 function createUser(req, res) { const userInfo = req.body; userService.createUser(userInfo) .then(function(){res.json({message: "User added successfully"})}) .fail(function(error){res.send(error)}) .done(); } 我怎样才能testing,当承诺解决, res.json()被调用,当承诺拒绝, res.send(error)被调用? 我已经尝试写这样的testing: const userService = … const userController = new UserController(userService); const response = {send: sinon.stub()}; … const anError = new Error(); userService.createUser = sinon.stub().returns(Q.reject(anError)); userController.createUser(request, response); expect(response.send).to.be.calledWith(anError); 但testing失败,“response.send永远不会被调用”。 我也试过在调用res.send(error)之前logging一些东西,并且logging发生了。 我的猜测是expect()在调用res.send(error)之前被调用,因为它是asynchronous的。 我在承诺和unit testing方面还是比较新的,这是我的架构还是我对promise的使用? 我使用Q来承诺和摩卡,柴,我的unit testing。

如何在NodeJS中testingrecursion调用的函数?

我有一个ES6 / 7编写的反复函数,由babel转换。 我有一个循环函数创build,检查是否有用户文件,使用mongoose。 // Keep checking if there is a user, if there is let execution continue export async function checkIfUserExists(){ let user = await User.findOneAsync({}); // if there is no user delay one minute and check again if(user === null){ await delay(1000 * 60 * 1) return checkIfUserExists() } else { // otherwise, […]

使用jQuery运行命令行摩卡错误

所以我有这个函数在一个文件中使用jQuery account.js: function getSession() { var session = null; $.ajax({ url: "/ajax/get_session", async: false }).done(function(data, textStatus, jqXHR){ session = data; }); return session; } 我想用Mocha在命令行上testing它。 为此我有另一个文件: testingaccount.js: var assert = require('assert'); var fs = require('fs'); var vm = require('vm'); // includes minified & uglified version, assuming mocha is run in repo root dir var path […]

模拟一个HEAD请求redirect(通过nock模块)

在我的项目中,我尝试扩展推文以充分显示。 由bit.ly缩短的链接被这个和平的代码扩展(find@ stackoverflow)。 function expandUrl(shortUrl,callback) { debug("expandUrl"); request( { method: "HEAD", url: shortUrl, followAllRedirects: true }, function (error, response) { if (error) return callback(null,shortUrl); return callback(null,response.request.href); } ); } 在摩卡testing期间不需要在线,我想用下面的代码来禁止这部分代码: nock('http://bit.ly') .intercept("/1Ghc7dI","HEAD") .reply(200,undefined,{location:"http://discoverspatial.com/courses/qgis-for-beginners"}); 但是这不起作用。 这个工作后,response.request.href是“undefined”。 (我试过href而不是位置,这没有什么区别。

全局模式包括所有的js排除特定的结局

我想用摩卡水珠。 可悲的摩卡不支持排除,也不会传递glob选项,所以我必须在不使用glob ignore选项的情况下以单一模式解决这个问题。 https://github.com/mochajs/mocha/issues/1577另一个解决scheme是使用mocha.opts,但这不是业力兼容,我不知道为什么。 我可以定义一个karma兼容的opts文件和一个兼容节点的opts文件,但是这个会在问题解决后立即中断,所以我正在寻找另一个解决scheme。 https://github.com/karma-runner/karma-mocha/issues/88 我需要匹配test/**/*.spec.js并从结果中排除test/**/*.karma.spec.js 。 这是可能的一个单一的glob模式?

aws-sdk s3上传不工作从摩卡testing

尝试从摩卡testing运行s3上传: 'use strict'; describe('S3 test', function() { it.only('S3 test 1', function*() { var AWS = require('aws-sdk'); //AWS.config.region = 'us-west-2'; var s3 = new AWS.S3({ params: { Bucket: 'test-1-myBucket', Key: 'myKey' } }); s3.createBucket(function(err) { if (err) { console.log("Error:", err); } else { s3.upload({ Body: 'Hello!' }, function() { console.log("Successfully uploaded data to myBucket/myKey"); }); } […]