我使用Mocha和shouldjs以及bluebird编写单元测试。
根据文档(http://shouldjs.github.io/#assertion-finally),我应该能够返回一个Promise,并对其进行测试。
它正在运行,但未经过测试。抛出一个断言,但测试似乎已经过了
这是我的代码。它非常直接来自于shouldjs文档:
'use strict';
require('should');
var Promise = require('bluebird');
describe('demo should error', function () {
it('I should fail - but Im not', function () {
var prm = new Promise(function(resolve, reject) { resolve(10); });
return prm.should.be.finally.equal(9);
});
});
当我在摩卡中运行时,我得到以下内容:
>>> mocha tests/demo.js
(node) child_process: options.customFds option is deprecated. Use options.stdio instead.
․Unhandled rejection AssertionError: expected 10 to be 9
at Assertion.fail (/Users/andrew/projects/DELETE_ME/2016-02-07/node_modules/should/lib/assertion.js:91:17)
at Assertion.Object.defineProperty.value (/Users/andrew/projects/DELETE_ME/2016-02-07/node_modules/should/lib/assertion.js:163:19)
...
1 passing (14ms)
因此抛出异常,但测试似乎已经过去了。
当我使用原生Promise时,我也会得到误报,而不是蓝鸟,但是没有显示堆栈跟踪。
感激不尽的任何帮助......
答案 0 :(得分:1)
我使用的是过时的摩卡......
npm i -g mocha
诀窍