2016-11-27 2 views
0

У меня есть следующие настройки для моего модульного тестирования:Ожидать и должны использовать объект Promise вместо разрешенного результата

const mocha = require('mocha') 
var chai = require('chai') 
var chaiAsPromised = require('chai-as-promised') 
chai.use(chaiAsPromised) 

var expect = chai.expect 
chai.should() 

describe('chain test', function() { 
    it('should be a string', function() { 
    return Promise.resolve('string').should.to.be.a('string'); 
    }); 
}); 

Но когда я бегу мокко, то результат:

1) chain test should be a string: 
    AssertionError: expected {} to be a string 

Поэтому кажется, что тест выполняется против самого объекта Promise, а не против разрешенного результата.

Согласно chai-as-promised: Installation and Setup, установка правильная.

И тест создается так же, как описано в chai-as-promised: How to Use.

Я проверил как expect(promise)., так и синтаксис promise.should. Кто-нибудь знает, в чем проблема?

Использованные варианты узла и модули:

  • узел v4.6.1
  • Chai 3.5.0
  • Chai-а-обещали 6.0.0
  • Мокко 3.2.0

ответ

0

Я нашел ошибку.

Проблема заключается в том, что правильный синтаксис не .should.to.be, но должен быть .should.eventually.be

+0

Это считают, что '.to.' может быть проблема. – MarcoL