Я пишу модульные тесты, используя Mocha и shouldjs, и bluebird.mocha возвращает обещание, ложные положительные проходы и выдает исключение с указанием ошибки
Согласно документации (http://shouldjs.github.io/#assertion-finally), я должен быть в состоянии вернуть обещание и проверить его.
Выполняется, но не проверен. Утверждение бросается, но тест, по-видимому, проходит
Вот мой код. Это довольно хорошо прямо из 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, а не bluebird, но трассировка стека не отображается.
Любая помощь с благодарностью получил ...
Я скопировал свой код в пустой каталог, установленный 'should' , 'mocha' и' bluebird', запускали ваш код, и он терпит неудачу, как ожидалось. – Louis
Привет, Луис, я только что повторил свой тест, точно так же, показывая трассировку стека, но результат мокки показывает «1 проход». Является ли результат определенно не «1 минутой»? 500 MD проекты/DELETE_ME/ошибок демонстрационные 501 NPM INIT 502 NPM я должен BlueBird 503 pbpaste >> test.js 504 мокко test.js – user2444238
'0 passing' и на следующей строке' 1 failing'. – Louis