Articles of 断言

节点断言:testing错误消息

使用节点的断言模块如何testing错误消息? throw new Error('Email is required!'); 我正在使用assert.throws来检查是否引发错误: assert.throws(myFunction, Error); 但是这不能提供检查信息的能力。

错误:超过2000毫秒超时。 unit testing承诺

我的unit testing向HTTP API请求HTTP请求并使用kriskowal q库。 当我assert调用, thencallback和断言失败,我看到Error: timeout of 2000ms exceeded而不是AssertionError 。 我写了一个例子来说明这种情况: var assert = require('assert') , Q = require('q'); it('promise', function(cb){ var deferred = Q.defer(); deferred.promise.then(function(){ assert(false); cb(); }); deferred.resolve(); }); 我无法理解这种行为。 使用setTimeout/setImmediatebuild模asynchronous行为显示正常的AssertionError 。

node.js在mongodb驱动程序文档中声明模块

这是mongoDB驱动程序文档的一个例子。 我一直在试图找出assert.equal在这个例子中做了些什么,但是在Node.js网站上的官方文档并没有太多的帮助 – 官方文档中写着:“testing浅,与平等比较运算符强制平等(==)“。 所以我首先怀疑它会根据平等的真值返回真假。 但似乎没有。 我看了这个post: 断言模块在nodejs中使用? 。 它确实有帮助 – 但还不够。 我还是不太了解“unit testing”是如何完成的。 任何帮助将不胜感激,但坚实的例子将是超级有益的! var Db = require('mongodb').Db, MongoClient = require('mongodb').MongoClient, Server = require('mongodb').Server, ReplSetServers = require('mongodb').ReplSetServers, ObjectID = require('mongodb').ObjectID, Binary = require('mongodb').Binary, GridStore = require('mongodb').GridStore, Grid = require('mongodb').Grid, Code = require('mongodb').Code, BSON = require('mongodb').pure().BSON, assert = require('assert'); // Set up the connection to […]

Mongodb断言28616“寻找期间遇难的亚军”

我正在运行一个NodeJS脚本,连接到我的Mongo Oplog观看增量。 定期地,我得到以下Mongo错误: assertion 28616 Runner killed during find ns:local.oplog.rs query:{ orderby: { $natural: 1 }, $query: { ns: "Foo", ts: { $gt: Timestamp 1467969843000|2841 } } } 我在文档中查了一下,没有find任何东西来指导我如何解决这个问题,并避免不时发现这个错误。 其他人看到这个?

我如何构buildnode.js摩卡testing

我非常喜欢在node.js中进行unit testing,我想知道在node.js中编写unit testing的最佳做法是什么,比如'it'方法可以有多less个asserttesting用例,有没有什么标准只用一个方法写一个testing用例。 请给我一个写unit testing用例的想法。 提前致谢。:)

为什么Node.js Assert没有notOk()方法?

我正在学习使用mocha和assert模块在Node.js中进行testing。 assert有这些types的方法: assert.equal(); assert.deepEqual(); assert.deepStrict(); assert.strict(); assert.ok(); // Is the value true? 然后有一些对立面: assert.notEqual(); assert.notDeepEqual(); assert.notDeepStrict(); assert.notStrict(); 但有一个缺less…为什么没有一个notOk()方法来testing结果值是否为false ? 这让我想到,也许有一些基本的东西我缺less一般的unit testing,也许我只应该testing,如果价值观是真实的,从来没有错误… 就目前而言,我只是在做这个来testingfalsey陈述: assert.ok(!myValue); 那是你应该怎么做的? 再说一遍,为什么不存在一个notOk()方法,因为所有其他的方法都有一个not版本?

Node.js:我应该在生产代码中保存assert()吗?

一个方法论问题: 我正在使用node.js,mongodb和express.js实现一些API的接口。 在许多(几乎所有)网站上,我看到这样的代码: method(function(err, data) { assert.equal(null, err); }); 问题是:在生产时我是否应该在自己的代码中声明自己的声明(至less对于“低含义”错误)? 或者,这些只是用于testing代码,而且我应该每次更好地处理所有错误?

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

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

复制Node.js`assert`断言spec`expect`

与使用自定义的开发人员友好检查的非断言代码相反, class Some { constructor(arg) { if (Array.isArray(arg) && arg[0] === 'foo') this.foobar = arg.concat('bar').join(''); else console.error('Bad Some constructor arg'); } } 目前testing的代码与Node assert断言具有合理有意义的message参数: class Some { constructor(arg) { assert.deepEqual(arg, ['foo'], 'Some constructor arg'); this.foobar = arg.concat('bar').join(''); } } 这个说法是有的 保持代码平坦和可读 对调用堆栈的不正确使用提供有意义的反馈 防止函数执行,不会进一步传播错误 抛出错误并将error handling留给调用者 目前的规格可能如下所示: it('…', () => { let some = new Some(['foo']); […]

Assert.fail(node.js):运算符参数是什么意思?

Node.jsunit testing模块有基本的assertion assert.fail: assert.fail(actual, expected, message, operator) operator是什么意思? 我真的很陌生,unit testing…