承诺和摩卡

时间:2017-08-02 19:57:29

标签: javascript typescript promise mocha

我正在尝试测试一些异步代码。但我遇到了一些麻烦。

我读过这篇文章(https://github.com/wietsevenema/testing-aync-with-mocha/blob/master/test.js),并尝试了所有的例子。但是我仍然得到Timeout Error(用我自己的Promise实现和mongoose)。

开始认为我的代码中存在错误,请参阅下文。

static updateEndDate(userId: string, endDate: Date):Promise<iUserModel> {
    return UserSchema.findOneAndUpdate({'_id': userId}, {$set: {exp_on: endDate}})
        .exec()
        .then((user: iUserModel) => {
            if(user)
                return Promise.resolve(user);
            else
                return Promise.reject({errmsg: 'No user found'});
        }).catch(e => {
            return Promise.reject(e);
        })
}

当我尝试以下代码时:

const resolvingPromise = new Promise((resolve) =>
  resolve('promise resolved')
);

    it('assertion success', async () => {
      const result = await resolvingPromise;
      chai.expect(result).to.equal('promise resolved');
    });

一切顺利。但是当我使用自己的实现时,我会得到超时。

   it('assertion success', async () => {
      const result = await User.findByID('41224d776a326fb40f000001');
      chai.expect(result).to.equal('testing');
    });

只想添加我也试过这个实现:

it('assertion success', async () => {
  return User.findByID('41224d776a326fb40f000001')
  .then((res) => {
    chai.expect(res).to.equal('test');
  });
});

思考?

0 个答案:

没有答案