Tag: 摩卡

Supertest + Knex.js =当前客户端没有定义池

我使用超级(在摩卡内)来testing我的应用程序,这是目前使用knex.js数据库的目的。 一切正常和knex的旧版本,(0.5.x)。 现在我想用最新的knex版本。 在大多数情况下,使用 request = supertest(app) 对我来说工作正常,但还有其他情况下我需要testing几个请求,而不重复使用Cookie,所以… request = supertest.agent(app) 这发生了什么? 它结束了主题中描述的错误。 我已经添加了一些自定义日志“acquireConnection”,“releaseConnection”,“initializePool”和“destroy”函数到内核库,看看发生了什么,输出如下所示: Adquiring connection from pool {someCustomPoolIdYSet) Adquiring connection from pool {someCustomPoolIdYSet) Releasing connection from pool {someCustomPoolIdYSet) Adquiring connection from pool {someCustomPoolIdYSet) Adquiring connection from pool undefined [Error] …….. "There is no pool defined on the current client" 任何帮助,将不胜感激。 提前致谢。

摩卡:使脚本function,将testing的对象

我怎样才能使我的function,我会testing的对象? 例如。 DOMParser对象。 testing: import assert from 'assert'; import { DOMParser } from 'xmldom'; import { parseHtml } from './../src/parse-html.es6'; describe('HTML Parser', function () { it('Hello World', function () { parseHtml(); }); }); parseHtml(): export function parseHtml(html) { const parser = new DOMParser(); return parser.parseFromString( `<html><head></head><body>${html}</body></html>`, 'text/html' ); } 我会用mocha和nodejstesting。

sails.js + mocha + supertest + sinon:如何存储sails.js控制器函数

我试图存根一个帆控制器function,但我不知道哪个对象存根。 使用sinon.stub(object,'funcname', function()… 这可能与风帆绑定控制器function的方式有关… 下面是一些代码来举例 控制器文件api / controllers / PersonController.js var fs = require('fs'); // // I want to stub retrieveData function when testing // function retreiveData(cb) { fs.readFile('./filedata', function (err, data) { if (err) throw err; cb(data.toString()); }); }; function showdata(req, res) { var stack = new Error().stack console.log( stack ) retreiveData(function (data) { […]

为Mongoose运行多个Mochatesting文件已损坏

根据Alexey B.的评论,我修改了我的testing代码,发现导致我的testing代码出现同样错误的情况。 当我尝试testing单个testing文件时,它运行良好。 但是,如果我尝试同时testing多个testing文件,则会被破坏。 常见错误消息是Error: Trying to open unclosed connection. 。 看来我的数据库连接代码有一些问题。 这是我修改的代码。 utils.js : var mongoose = require('mongoose'); module.exports = function(models) { return function(done) { for(var i in models) { models[i].remove({}, function() {}); } done(); }; }; user.server.model.tests.js : var should = require('should'), mongoose = require('mongoose'), utils = require('./utils'); require('../config/mongoose')(); var User = mongoose.model('User'), […]

Grunt:使用不同的环境/stream程运行多个摩卡testing

我想在不同的环境和数据库上运行多个摩卡testing。 暂定是创build两个单独的咕噜configuration: grunt.initConfig({ // first one mochaTest: { options: { … }, src: ['test/server/*.js'] }, // second one mochaTest: { options: { … }, src: ['test/slave/*.js'] }, env: { dev: { NODE_ENV: 'development' }, test: { NODE_ENV: 'test' } }, }); grunt.registerTask('test', function (target) { if (target === 'server') { return grunt.task.run([ 'env:test', 'mochaTest' // […]

嘲笑os.type()不工作

我试图unit testing一个依赖于底层操作系统的模块。 我试图使用嘲笑模拟os.type()返回基于不同的testing夹具的Linux / Windows_NT。 我正在使用摩卡作为我的unit testing框架。 我有一个描述部分,unit testing我的模块的functionA,其中有2个描述块:一个用于Windows,一个用于Linux。 设置:var reload = require(“require-reload”)(require); var module_we_test = reload('…'); var linuxOsMock = { type: function () { return "Linux"; } }; var windowsOsMock = { type: function () { return "Windows_NT"; } }; describe('#the_module_we_test', function() { before(function() { mockery.enable({ warnOnReplace: false }); }); after(function() { mockery.disable(); }); […]

编写unit testing使用child_process的节点服务

我有一个节点服务,我使用child_process spwan一个孩子,在我的情况下,孩子是一个C ++二进制文件,需要STDIN和streamSTDOUT。 该服务正在按预期工作,现在我正在尝试使用mocha / chai在服务中编写unit testing,并通过伊斯坦布尔运行testing。 我已经为这些stuufs奠定了基础,但只想获得如何为使用child_process的节点服务编写unit testing的示例。 基于这个例子,我可以尝试为我的服务编写unit testing,并在Instanbul上运行它们来生成覆盖率报告。 服务产生这样的孩子, var spawn = require('child_process').spawn, child = spawn(pathToBinary); child.stdin.write('JSON'); child.stdout.on('data', function (data) { //perform operations here });

在摩卡testing中使用es6

我试图将es6纳入我的服务器端代码。 在运行服务器时使用babel-node工作,但是我在运行mochatesting时遇到编译es6到es5代码的麻烦。 这是我的文件夹结构 我有一个server.js启动一个worker.js文件(它有快递服务器) server.js文件 import {SocketCluster} from 'socketcluster'; const socketCluster = new SocketCluster({ workers:1, brokers:1, port: 3000, appName:null, workerController: __dirname + '/worker.js', brokerController: __dirname + '/broker.js', socketChannelLimit: 1000, crashWorkerOnError: true }) worker.js文件 export const run = (worker) => { console.log(' >> worker PID: ',process.pid); const app = express(); const httpServer = worker.httpServer; const scServer […]

用摩卡expressiontesting:基于承诺的testing不会自行运行?

我有两个testing文件。 当只有test1.js存在时,没有testing运行,并且mocha报告“0通过”testing。 当test1.js和test2.js存在,但都依赖于承诺,那么仍然没有testing运行,摩卡仍然报告“0通过”。 但是,当其中一个testing被修改为不使用诺言时,摩卡运行两个testing,他们成功。 有没有搞错? 这是我的文件: index.js: require('./server').then( function(server) { server.listen(8080, function() { console.log("Started server"); }); ); server.js: var express = require('express'); var server = express(); module.exports = new Promise((function(resolve, reject) { return resolve(server); })); test1.spec.js: require('./server').then(function(server) { describe('Test Suite #1', function () { it('should run test #1', function testSomething(done) { return done(); }); }); […]

如何在单个npmtesting命令中运行mochatesting和节点? (CI)

我想用Circle CI来集成一个git项目。 我正在使用mocha进行testing。 我想做的事? 运行npm test我想: 我的节点服务器启动 我的testing文件运行 我怎样才能运行一个npm test命令来运行节点和我已经包装在一个index.js文件中的mochatesting。 我已经在我的package.json试过了: "scripts": { "test": "node server/app.js & mocha server/tests/index.js", "start": "node server/app.js", "postinstall": "bower install" } 以上的问题 我的服务器需要一些时间才能启动,并且testing失败,因为它们在服务器启动之前运行 有一个标准的方式来运行一个服务器和单一命令的testing,但我错过了什么?