Articles of unit testing

运行unit testing时禁用winston日志logging?

在执行节点模块的unit testing时,能否select禁用Winston日志? 理想情况下,我希望在应用程序运行时进行信息和debugging目的的日志logging,但是在运行我的testing时不要混乱显示unit testing结果。 我对winston的使用是在我的模块内部的,就像这样: // MyModule.js var logger = require('winston'); module.exports = function() { // does some stuff // and logs some stuff like so: logger.log('an informational message'); } // MyModuleTest.js describe('MyModule', fucntion() { it('should do some stuff', function() { var myModuleUnderTest = require('MyModule'); // some tests } }

testingMongooseJsvalidation

有谁知道如何testingmongoosevalidation? 例如,我有下面的Schema(作为例子): var UserAccount = new Schema({ user_name : { type: String, required: true, lowercase: true, trim: true, index: { unique: true }, validate: [ validateEmail, "Email is not a valid email."] }, password : { type: String, required: true }, date_created : { type: Date, required: true, default: Date.now } }); validateEmail方法定义如下: // Email […]

Node.js断言库与其他断言库

根据node.js声明库文件 : 该模块旨在供Node.js内部使用,但可以通过require('assert')在应用程序代码中使用。 但是,assert不是一个testing框架,不能用作通用的断言库。 我将Chai视为另一个断言库(没有BDD API,只有assert API),最后我发现断言function非常相似。 为什么柴的断言库是一个更好的断言库? 它比node.js所做的一切都做得更好(除了在断言方面更丰富之外,这只是语法上的糖衣)。 即使简单的事情,如执行断言的总数不是两个都可用。 我错过了什么吗?

Karmaunit testing:模块名称“react”尚未加载上下文:_。 使用require()

我正在尝试设置unit testing框架进行反应。 这样做时发生以下错误。 我已经search了所有的互联网没有解决scheme正在工作。 下面是显示的错误和我正在使用的代码/包。 debugging错误 04 03 2016 04:48:46.340:DEBUG [phantomjs.launcher]: Error: Module name "react" has not been loaded yet for context: _. Use require([]) http://requirejs.org/docs/errors.html#notloaded 04 03 2016 04:48:46.341:DEBUG [phantomjs.launcher]: http://localhost:9876/base/node_modules/requirejs/require.js?6f53c895855c3743ac6fb7f99afc63ca5cdfd300:140 in defaultOnError http://localhost:9876/base/node_modules/requirejs/require.js?6f53c895855c3743ac6fb7f99afc63ca5cdfd300:544 in onError http://localhost:9876/base/node_modules/requirejs/require.js?6f53c895855c3743ac6fb7f99afc63ca5cdfd300:1429 in localRequire http://localhost:9876/base/node_modules/requirejs/require.js?6f53c895855c3743ac6fb7f99afc63ca5cdfd300:1791 in requirejs PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR Error: Module name "react" has […]

在单独的文件中testingMongoose模型会导致问题(使用Mockgoose&Lab)

每当一个Mongoose模型在加载之后试图加载,就会抛出一个错误,例如: 错误:uncaughtException:编译后无法覆盖Account模型。 date = Fri Feb 26 2016 10:13:40 GMT-0700(MST),pid = 19231,uid = 502,gid = 20,cwd = / Users / me / PhpstormProjects / project,execPath = / usr / local / Cellar / node / 0.12.4 / bin / node,version = v5.2.0,argv = [/ usr / local / Cellar / node / 0.12.4 / bin […]

如何testingnode.js websocket服务器?

我正在使用标准configuration的sockjs。 var ws = sockjs.createServer(); ws.on('connection', function(conn) { conn.on('data', function(message) { wsParser.parse(conn, message) }); conn.on('close', function() { }); }); var server = http.createServer(app); ws.installHandlers(server, {prefix:'/ws'}); server.listen(config.server.port, config.server.host); wsParser.parse函数是这样工作的: function(conn, message) { (…) switch(message.action) { case "titleAutocomplete": titleAutocomplete(conn, message.data); break; (…) // a lot more of these } 交换机中调用的每个方法都会向客户端发回消息。 var titleAutocomplete = function(conn, data) { redis.hgetall("titles:"+data.query, […]

未能通过风帆运行摩卡testing

我正在关注Sails文档并尝试运行Mochatesting。 我已经按照文档指定的方式编辑了我的package.json ,但由于某种原因,当我尝试运行Mocha时,总是得到EACESS,权限被拒绝。 起初我得到了: Error: EACCES, permission denied '/Library/Application Support/Apple/ParentalControls/Users' 我不明白为什么要做运行我的testing,但增加了这个文件夹所需的权限。 然后我得到: Error: EACCES, permission denied '/Library/Application Support/ApplePushService' 再次,不明白,所以改变了这个文件夹的权限,这也没有帮助。 我不明白为什么摩卡需要这些文件的权限,或者如何解决这个问题。 我跑了这个命令: mocha test/bootstrap.test.js test/unit/**/*.test.js 而且我的项目结构和Sails教程完全一样。 我正在使用Mocha@2.2.5 。 我的同事克隆回购,并试图在他的机器上运行testing,但没有完全相同的错误失败。 我试图降级到Mocha@2.2.0这也没有帮助。 完整的错误追踪: events.js:85 throw er; // Unhandled 'error' event ^ Error: EACCES, permission denied '/Library/Application Support/ApplePushService' at Error (native) at Object.fs.readdirSync (fs.js:761:18) at Glob._readdir (/usr/local/lib/node_modules/mocha/node_modules/glob/glob.js:609:20) at Glob._process […]

用Jest(和mockgoose)testingNode.js API

这里有两个问题: 1)Jest是testingNode.js(express)API的好select吗? 2)我试图用Jock与Mockgoose ,但我不知道如何build立连接和运行后的testing。 这是我来之前的最后一次尝试: const Mongoose = require('mongoose').Mongoose const mongoose = new Mongoose() mongoose.Promise = require('bluebird') const mockgoose = require('mockgoose') const connectDB = (cb) => () => { return mockgoose(mongoose).then(() => { return mongoose.connect('mongodb://test/testingDB', err => { if (err) { console.log('err is', err) return process.exit() } return cb(() => { console.log('END') // this is […]

Cloud9中的Mochatesting中的“未声明的variables”警告

我是node.js和unit testing框架Mocha的新手,但是我已经在cloud9 IDE中创build了一些testing,以了解它是如何工作的。 代码如下所示: var assert = require("assert"); require("should"); describe('Array', function(){ describe('#indexOf()', function(){ it('should return -1 when the value is not present', function(){ assert.equal(-1, [1,2,3].indexOf(5)); assert.equal(-1, [1,2,3].indexOf(0)); }); }); }); describe('Array', function(){ describe('#indexOf()', function(){ it('should return the index when the value is present', function(){ assert.equal(1, [1,2,3].indexOf(2)); assert.equal(0, [1,2,3].indexOf(1)); assert.equal(2, [1,2,3].indexOf(3)); }); }); }); 如果我在控制台中键入mocha,testing会起作用,但IDE会在“describe”和“it”的行中显示警告,因为它说variables没有被声明(“未声明的variables”)。 我想知道我应该怎么做这些testing来避免这些警告。 […]

模拟node.js模块

可以说我有这种情况(架构) layer1 -> layer2 -> layer3 层只是正常的node.js模块(有一些导出的function) Layer1需要layer2并调用其function,而layer2需要layer3并调用其function。 我想testinglayer1中的函数,但也模拟layer3(我在layer1中的函数调用传播到layer3,这个我想模拟)。 做这个的最好方式是什么? 我已经看过这个模块: https : //github.com/thlorenz/proxyquire,但我不认为它支持嘲笑当事情是深入2级或更多级别,如我的例子。 感谢您的任何build议!