Articles of chai

比较chai中的数组

我正在用chai和chai-as-promised(以及更多的框架,但在这种情况下并不重要)编写一些testing,我需要检查从网页获得的数组是否与预定义的数组相同。 我试图使用expect(arrayFromPage).to.eventually.deep.equal(predefinedArray) ,但它不会工作,因为页面上的元素顺序有时是不同的(这是好的,我不需要检查他们是否是在相同的顺序)。 我已经find一种方法来解决问题,通过使用expect(listFromPage).to.eventually.include.all.members(predefinedArray) ,但我想知道是否有更好的解决scheme。 在我的解决方法中,最让我困扰的是,我只能确保listFromPage是listFromPage子集,而不是它们由相同的元素组成。 所以,我想知道是否有一个断言会通过[1,2,3]和[3,2,1] ,但不是[1]和[1,2,3]或[1,2,3,4]和[1,2,3] 。 我知道我可以使用第二个期望(比较长度或其他),但我想知道是否有单线解决scheme。

赶上摩卡和柴的超出范围的错误

我正在修改一个node.js库来支持真正的asynchronous操作。 我和摩卡和柴一起做了这个类似的testing。 it('should throw an error', function() { expect(function() { process.nextTick(function() { throw new Error('This is my error'); }); }).to.throw(Error); }); 问题是 – 由于nextTick – 错误被抛出它的范围,除了testing失败,摩卡也输出下面。 Uncaught Error: This is my error 构build这个testing的正确方法是什么?

我使用毛毯在摩卡代码覆盖范围内获得0%覆盖0 SLOC

我正在尝试在MOCHA JStesting中获得代码覆盖率。 我正在使用毯子,但我得到0%的覆盖率0 SLOC为什么我不理解。 我的package.json是 { "name": "basics", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "mocha && mocha test –require blanket –reporter html-cov > coverage.html" }, "author": "", "license": "MIT", "devDependencies": { "chai": "~2.2.0", "mocha": "~2.2.4", "blanket": "~1.1.6", }, "config": { "blanket": { "pattern": ["index.js"], "data-cover-never": "node_modules" } } } 和index.js是 exports.sanitize = […]

chai-http写完后

我有一个server-app ,从客户端接收audiostream。 我正在尝试使用chai / chai-http来testing应用程序,但它给了我这个错误: [错误:结束后写入] 有什么问题? 码: var chai = require('chai'); var chaiHttp = require('chai-http'); var server = require('../server-app'); var should = chai.should(); var fs = require('fs'); chai.use(chaiHttp); describe('server', function() { it('should work..', function (done){ var req = chai.request(server).post('/speech'); fs.createReadStream('./test.wav').pipe(req); req.end(function (err,res){ console.log(err);//outputs: [Error: write after end] done(); }); }); });

通过Chai发送请求

我正在试图请求我的节点JS服务器接受后/投入呼叫。 我尝试通过chai发送后调用的参数在服务器(req.body.myparam)上不可见。 我已经尝试了下面的post请求,但没有结果结束: var host = "http://localhost:3000"; var path = "/myPath"; chai.request(host).post(path).field('myparam' , 'test').end(function(error, response, body) { 和 chai.request(host).post(path).send({'myparam' : 'test'}).end(function(error, response, body) { 节点的JS代码如下: app.put ('/mypath', function(req, res){ //Handling post request to create league createDoc (req, res); }) app.post ('/mypath', function(req, res){ //Handling post request to create league createDoc (req, res); }) var createDoc […]

如何testing一个函数是否调用特定的方法/函数?

摩卡里有没有一种方法来testing一个函数是否调用特定的方法或外部函数? 我正在使用摩卡与柴,但我打开任何其他断言库。 好的,用sinon来testing一个方法是否被调用是非常容易的。 我不确定testing,看是否正在调用一个外部函数。 所以我更新了一些例子来代表一些更“真实的世界”。 我正在研究节点应用程序,所以foo.js和bar.js都是模块。 例: foo.js var bar = require('bar'); var xyz = function () {}; var Foo = module.exports = function () { this.bar(); bar(); xyz(); }; Foo.prototype.bar = function () {}; bar.js var bar = module.exports = function () {}; fooSpec.js var chai = require('chai'); var sinon = require('sinon'); var sinonChai […]

在节点的mocha js中使用全局窗口variables

我是新来的jsunit testing,我正在尝试使用mocha作为我在这个github仓库find的主干联系人pipe理器教程。 然而,我有一个全局window.ContactManagervariables,我初审想testing它是否存在,然后testing启动function后面的router.onfunction。 variables看起来像这样: window.ContactManager = { Models: {}, Collections: {}, Views: {}, start: function(data) { var contacts = new ContactManager.Collections.Contacts(data.contacts), router = new ContactManager.Router(); router.on('route:home', function() { router.navigate('contacts', { trigger: true, replace: true }); }); router.on('route:showContacts', function() { var contactsView = new ContactManager.Views.Contacts({ collection: contacts }); ….. 我的testing不起作用:var expect = require('chai')。expect; describe("Application", function() { […]

通过Chai.jstesting失败

在JUnit中,您可以通过执行以下操作来通过testing: fail("Exception not thrown"); 使用Chai.js实现相同的最好方法是什么?

安装Zombie.js错误:ReferenceError:Set未定义。 我究竟做错了什么?

背景:目前我正在阅读Ethan Brown的“ 用Node和Express进行Web开发 ”(这是一本很棒的书,对于那些学习节点和快车),而我却陷入了第5章 – 质量保险。 一切顺利。 首先我跑了以下几点: npm install –save-dev摩卡 npm安装-g摩卡 npm install –save-dev chai npm install –save-dev僵尸 问题:然后我跑(按照书的指示): mocha -u tdd -R spec qa / tests-crosspage.js 2> / dev / null 但是这没有做任何事情。 所以然后我跑了: mocha -u tdd -R spec qa / tests-crosspage.js 然后出现这个错误: /Users/esanz91/Desktop/CodingNotes/Node/MySite/node_modules/zombie/node_modules/jsdom/lib/jsdom/level2/html.js:405 var nonInheritedTags = new Set([ ReferenceError:Set没有定义 版本:只是给你们一个想法,我已经安装了以下版本。 CMD: npm list […]

如何unit testing连接到mongo的方法,而不实际连接到mongo?

我试图编写一个testing来testing一个连接到mongo的方法,但是我实际上并不想让mongo运行,并且实际上build立了连接来让我的testing成功通过。 这是我当前的testing,当我的mongo守护进程运行时,它是成功的。 describe('with a valid mongo string parameter', function() { it('should return a rejected promise', function(done) { var con = mongoFactory.getConnection('mongodb://localhost:27017'); expect(con).to.be.fulfilled; done(); }); }); mongoFactory.getConnection代码: getConnection: function getConnection(connectionString) { // do stuff here // Initialize connection once MongoClient.connect(connectionString, function(err, database) { if (err) { def.reject(err); } def.resolve(database); }); return def.promise; }