2016-02-08 6 views
0

Я пишу модульные тесты, используя 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, но трассировка стека не отображается.

Любая помощь с благодарностью получил ...

+1

Я скопировал свой код в пустой каталог, установленный 'should' , 'mocha' и' bluebird', запускали ваш код, и он терпит неудачу, как ожидалось. – Louis

+0

Привет, Луис, я только что повторил свой тест, точно так же, показывая трассировку стека, но результат мокки показывает «1 проход». Является ли результат определенно не «1 минутой»? 500 MD проекты/DELETE_ME/ошибок демонстрационные 501 NPM INIT 502 NPM я должен BlueBird 503 pbpaste >> test.js 504 мокко test.js – user2444238

+0

'0 passing' и на следующей строке' 1 failing'. – Louis

ответ

1

я использовал устаревшую мокко ...

npm i -g mocha 

ли трюк