首页 > 解决方案 > 返回 Promise 的函数的单元测试

问题描述

嗨,我有以下函数返回承诺

module.exports.getJwtToken = async() => {
    const httpSearchAddressUXConfig = {
      headers: {
        Accept: 'application/json',
        mock: false,
        'Content-Type': 'application/json',
      },
      data: reqBody,
      method: 'POST',
      url: `${config.app.entTokens.host}`, // need to get from env variables
      timeout: config.app.enterpriseHTTPTimeout
    };
    try {
      const token = await axios(httpSearchAddressUXConfig);
      return token.data;
    } catch (err) {
      throw err;
    }

我有以下测试用例失败并出现未处理的 Promise 拒绝错误

it('should find Jwt token ', async(done) => {

  const actualTokenfound = jwtTokenService.getJwtToken();
  return actualTokenfound
    .then(result => expect(result).toBe(Object))
    .then(done);

});

有什么建议么 ?

标签: javascriptnode.jsnock

解决方案


如果你定义了一个异步函数,你不需要使用“done”。我想这样的事情它会起作用。

it('should find Jwt token ', async () => {
  const actualTokenfound = await jwtTokenService.getJwtToken();
  expect(result).toBe(Object));
});

推荐阅读