我正在使用chaichai-as-promised测试一些异步JS代码。

我只想检查一个返回promise的函数最终会返回一个Array,并编写了以下2个测试:

A:

it('should return an array', () => {
    foo.bar().should.eventually.to.be.a('array')
})


B:

it('should return an array', (done) => {
    foo.bar().should.eventually.to.be.a('array').notify(done)
})


两者都通过了OK,但是只有B选项实际上运行了我的bar()函数中包含的完整代码(即,显示下面代码中的console.log()消息)。难道我做错了什么?为什么会这样?

bar() {
    return myPromise()
    .then((result) => {
      console.log('Doing stuff')
      return result.body.Data
    })
    .catch((e) => {
      console.err(e)
    })
  }

最佳答案

您使用什么测试库? Mocha,实习生还是其他?
对于Mocha和Intern,您必须从测试方法中返回Promise:

it('should return an array', () => {
    return foo.bar().should.eventually.to.be.a('array');
})

09-12 02:07
查看更多