期望并且应该使用Promise对象而不是解析结果

时间:2016-11-27 12:44:41

标签: node.js unit-testing mocha chai chai-as-promised

我的单元测试有以下设置:

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');
  });
});

但是当我运行mocha时,结果就是:

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语法。有谁知道是什么问题?

节点和模块的已使用版本是:

  • node v4.6.1
  • chai 3.5.0
  • chai-as-promised 6.0.0
  • mocha 3.2.0

1 个答案:

答案 0 :(得分:0)

我发现了错误。

问题是正确的语法不是.should.to.be,而必须是.should.eventually.be