javascript - 返回 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);
});
有什么建议么 ?
解决方案
如果你定义了一个异步函数,你不需要使用“done”。我想这样的事情它会起作用。
it('should find Jwt token ', async () => {
const actualTokenfound = await jwtTokenService.getJwtToken();
expect(result).toBe(Object));
});
推荐阅读
- node.js - 如何从后端(nodejs)重定向到前端(react)?
- vba - 关闭文件前弹出消息
- python - 使用 Google Cloud 执行长时间运行的任务
- c - [UNIX]在c中发送大文件套接字流
- javascript - 使用 jsZIP 下载多个 pdfmake 文件
- nginx - 无法启动高性能 Web 服务器和反向代理服务器
- reactive-programming - 从 ServerWebExchange Spring 云网关读取请求正文
- python - 如何从数据流管道中的 PubSub 子目录中读取
- node.js - 在 Heroku Nodemon 上部署时未安装
- java - 无法在 Android 应用程序中使用形态指纹扫描仪设备捕获指纹