Tag: chai

在module.exports方法中使用sinontesting方法调用

我试图testing一下,如果使用摩卡,柴和颂,给定了某些特定的条件。 这里是代码: function foo(in, opt) { if(opt) { bar(); } else { foobar(); } } function bar() {…} function foobar() {…} module.exports = { foo: foo, bar: bar, foobar:foobar }; 这是我的testing文件中的代码: var x = require('./foo'), sinon = require('sinon'), chai = require('chai'), expect = chai.expect, should = chai.should(), assert = require('assert'); describe('test 1', function () { […]

断言库node.js?

node.js assert提供的unit testing断言非常有限。 即使在我写第一个testing之前,我已经创build了一些断言,因为很明显我会继续使用它们。 你能推荐一些好的断言库来testing常见的JavaScript情况(对象结构,对象类等)吗? 理想情况下,它应该很好地与nodeunit集成在一起(或者更好地扩展它的断言) – 我的断言不需要,我必须把它们作为一个额外的variables来test … 我见过的唯一一个是柴 。 你能说什么呢?

摩卡没有运行testing目录中的所有testing

这是我的文件夹结构 src/ a.js b.js test/ a.spec.js b.spec.js 我试过跑步 ~/…/src $ mocha ~/…/src $ mocha test ~/…/src $ mocha test/ ~/…/src $ mocha ./test/ ~/…/src $ mocha ./test/*.js 但没有工作…我得到的只是一个testing文件运行,其余的被忽略。 文件说,(1)应该做的工作,但没有。

为chai请求添加自定义的http头

我正在使用node.js构build应用程序,并使用mocha + chai进行testing。 有没有一种方法可以将自定义标题添加到我的GET和POST chai请求? 例如,我想要的东西像(半伪代码): chai.request(server) .get('/api/car/' + data.car_id) .headers({'some_custom_attribute':'some_value'}) .end(function(err, res) { //do something }); 同样的post: chai.request(server) .post('/api/car/') .headers({'some_custom_attribute':'some_value'}) .send({car_id: 'some_car_id'}) .end(function(err, res) { //do something }); 有人可以帮忙吗? 提前致谢!

调用路线进行摩卡testing

我正在尝试使用摩卡和柴编写unit testing,我面临的主要问题是,对于每个API我必须明确定义的url,即 test.js var expect = require('chai').expect; var should = require('chai').should; var express = require('express'); var chai = require('chai'); var chaiHttp = require('chai-http'); chai.use(chaiHttp); var baseUrl = 'http://localhost:3000/api'; describe("Test case for getting all the users", function(){ it("Running test", function(done){ this.timeout(10000); //to check if the API is taking too much time to return the response. var […]

Node.js + Chai / Mocha /应该:针对相同的响应运行多个testing

我正在使用与以下类似的东西来执行一系列使用Mocha的APItesting。 这很好,但是它需要为每个testing制作一个单独的API调用。 我想要使​​用相同的API调用,并针对该响应运行多个testing。 我一直在阅读你before可以使用的方法,但是Web上的所有例子都没有显示它使用API​​调用? var chai = require('chai'); var request = require('request'); var async = require('async'); var assert = chai.assert, expect = chai.expect, should = chai.should(); describe('/', function () { it('should return 200', function (done) { request.get('http://localhost:8000', function (err, res, body) { res.should.have.status(200); done(); }); }); it('should say "Hello, world!"', function (done) { request.get('http://localhost:8000', function […]

比较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(); }); }); });