Articles of 摩卡

从图书馆摩卡单位testingerror handling

我有下面的代码,基本上从数据库中获取用户。 下面的代码是使用Dynamoose,但我假设在许多其他库和包中有类似的东西。 User.get(searchid, function(err, user) { if (err) { console.log(err); return res.send('error'); } else { //DO LOGIC } }); 我写了unit testing来处理上面else语句中的所有逻辑。 但我想弄清楚是否有办法编写unit testing来处理代码的if (err)部分。 基本上我想写unit testing,以确保如果有错误,它会返回正确的东西,我会为任何其他testing我应该写的build议。 如何在这种情况下编写testing,并用unit testing来覆盖这些代码?

为事件创buildunit testing

我正在使用下面的开源解压文件正在工作正常。 现在我想创build一些集成testing ,看到文件被保存,问题是这个过程是事件的抛出,我不知道当过程结束时,任何想法如何解决这个问题? 前 var DecompressZip = require('decompress-zip'); var unzipper = new DecompressZip(filename) unzipper.on('error', function (err) { console.log('Caught an error'); }); unzipper.on('extract', function (log) { console.log('Finished extracting'); }); unzipper.on('progress', function (fileIndex, fileCount) { console.log('Extracted file ' + (fileIndex + 1) + ' of ' + fileCount); }); unzipper.extract({ path: 'some/path', filter: function (file) { return […]

如何模拟readline.on('SIGINT')?

我有这段代码: function getMsg() { return new Promise(function (resolve, reject) { var input = []; var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.on('line', function (cmd) { if (cmd.trim()) { input.push(cmd); } else { rl.close(); } }); rl.on('close', function () { rl.close(); resolve(input.join('\n')); }); rl.on('SIGINT', reject); }); } 我试图testing这个function,到目前为止,我的尝试是这样的: it('should reject if SIGINT is sent', […]

在Mocha使用node.js执行REST调用

我正尝试在Mocha执行REST调用。 我试图使用“请求”框架来loginauth0。 REST调用是正确的,我在Postman中尝试了相同的数据,并得到了正确的答案。 现在我正在尝试在我们的testing中实现这个调用,但是这不起作用。 方法不打开callback函数,我没有从服务器得到任何答案。 在后台日志中我可以看到,这个调用没有通过后端,也没有进行login。 我尝试了XMLHttpRequest到请求库的几种不同的方法。 这里我正在使用的代码: var should = require("should"); var assert = require('assert'); var request = require("request"); var authToken ='test'; var url = 'https://*****.eu.auth0.com/oauth/ro'; describe('auth0', function() { describe('Login', function() { it('should return authToken if user data is valid', function() { //REST call to login request.post({url:"https://********.eu.auth0.com/oauth/ro", form: { client_id:'*******************', username:'*******************', password:'*******************', connection:'Username-Password-Authentication', grant_type:'password', […]

JavaScript和Mocha的unit testing

我已经编写了一个JavaScript库/模块,用于调用静态Web服务的API调用,并向该库的使用者提供方法。 该库的构build方式使得相同的代码既可以用作前端库,也可以用作npm模块(使用browserify转换后的代码)。 不过,我现在计划编写相同的unit testing,这是我第一次编写整个库。 所以,我曾经看过像摩卡和茉莉花这样的图书馆,看来这是很好的select。 我正在考虑在摩卡书写testing。 但是,我不太清楚如何开始这些testing。 另外,像样本消费者那样testingfunction的testing应该被称为集成testing,还是应该将这些testing与unit testing结合起来? 我会很高兴,如果任何人都可以推荐一些在Github的样本testing或摩卡初学者的某种教程。 我也很乐意考虑其他的unit testing框架。 提前致谢

在节点中模拟postgres调用

我有一个类似的代码 const pg = require('pg'); const async = require('async'); const conn = 'pg://username:pass@my_db:2435/db'; const client = new pg.Client(conn); exports.handler = function(event, context) { async.waterfall([ query_aggregate(callback), my_next_function(rows, callback) ], function (err) { if (err) { context.fail(err); } else { context.succeed('Succeed'); } }); }; function query_aggregate(callback) { client.connect(function (err) { if(err) callback(err); const query = 'SELECT shop_id, […]

如何设置不同testing级别的testing代码覆盖率?

我使用nyc来生成代码覆盖率报告。 我用我的testing不同的水平。 我如何合并来自不同级别的报告? 有我的package.json的一部分 "scripts": { "test": "npm run test:unit && npm run test:component", "test:component": "nyc mocha ./test/component", "test:unit": "nyc mocha ./test/unit" }, "nyc": { "extension": [ ".ts" ], "cache": true, "reporter": [ "lcov", "text-summary" ] }

节点:Mocha TDD正在发送数组

以下是我需要在请求中发送的以下正文格式: [{ "user_id": "861", "username": "userA", "friend_id": "1270" }, { "user_id": "861", "username": "userB", "friend_id": "1270" }] 我创build了以下testing: describe('POST /friends/add', () => { it('should return an array of Friend Objects ', (done) => { request(app) .post('/friend/add') .set('auth', token) .send([ { "user_id": authUserId, "username": filteredUsers[0].username, "friend_id": filteredUsers[0].id }, { "user_id": authUserId, "username": filteredUsers[2].username, "friend_id": filteredUsers[2].id }, […]

如何在nodejs中parsing“Error:invalid reporter”html-cov“”

的package.json { "name": "learningmocha", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "mocha && mocha test –require blanket –reporter html-cov > coverage.html" }, "author": "", "license": "ISC", "devDependencies": { "blanket": "^1.2.3", "chai": "^3.5.0", "mocha": "^3.2.0" }, "config": { "blanket": { "pattern": [ "index.js" ], "data-cover-never": "node-module" } } } 我正在使用Mocha在nodejs中进行testing。 当我在我的package.json的testing脚本中添加html-cov后,运行npmtesting,如上所示,然后它给我错误 “错误:无效的记者”html-cov“ 你可以在这个图像中看到更多

使用摩卡混合同步和asynchronoustesting

我有一个函数,计算一些东西,通过callback关于一些事件通知用户: function returnAndCallback(callback) { callback(5); // not always invoked return 3; } 使用Mocha和Should.js,我写了这个testing: describe('mixing sync and async code', function() { it('should test callback AND return value', function(done) { returnAndCallback(function(value) { value.should.be.eql(5); done(); }).should.be.eql(4); }); }); 这是成功的,因为testingdone()时done()被调用。 看来,我可以写一个同步testing,并检查返回值,或者我可以写一个asynchronoustesting,并检查callback。 不能使用像这样的同步testing: describe('mixing sync and async code', function() { it('should test callback AND return value', function() { returnAndCallback(function(value) { […]