Node.js 如何在chai测试中使用async/await?
我有一个chai测试,它不使用async/await语法,但会崩溃。如何修复它 错误是: 错误[ERR\u SERVER\u ready\u LISTEN]:在未关闭的情况下多次调用了LISTEN方法。 代码:“ERR\u SERVER\u已经\u LISTEN” 下面是使用工作经典语法和非工作异步/等待语法的相同测试:Node.js 如何在chai测试中使用async/await?,node.js,chai,chai-http,Node.js,Chai,Chai Http,我有一个chai测试,它不使用async/await语法,但会崩溃。如何修复它 错误是: 错误[ERR\u SERVER\u ready\u LISTEN]:在未关闭的情况下多次调用了LISTEN方法。 代码:“ERR\u SERVER\u已经\u LISTEN” 下面是使用工作经典语法和非工作异步/等待语法的相同测试: chai.use(柴胡汤); const api=chai.request(server.keepOpen(); //async/await=>不起作用 描述(“GET/us
chai.use(柴胡汤);
const api=chai.request(server.keepOpen();
//async/await=>不起作用
描述(“GET/user/:id”,()=>{
它(“返回用户信息”,异步(完成)=>{
const res=等待api
.get(“/user/123”)
.set(“Cookie”,“_id=567;locale=en”);
柴.期望(地位)等于(200);
完成();
});
});
//经典语法=>有效
描述(“GET/user/:id”,()=>{
它(“返回用户信息”,()=>{
应用程序编程接口
.get(“/user/123”)
.set(“Cookie”,“_id=567;locale=en”)
.end(函数(err、res){
柴.期望(res.to.have.status)(200);
});
});
});代码>问题似乎与语法无关。不知何故,hai http
尝试两次启动服务器,因此您会得到“ERR\u server\u ready\u LISTEN”或者您已经在某个地方运行了服务器。经典语法“passs”,因为您不使用done()
,而应该使用它。真正发生的情况是,经典测试触发一个请求,但不等待它完成,因此没有断言,因此没有断言不失败。是的,如果我在测试结束时添加done(),后者也会崩溃,出现ERR\u SERVER\u ready\u LISTEN
错误。否,服务器尚未侦听。我刚进入“纱线测试”,如果没有看到代码的其余部分,很难说出更多。不知怎的,server.listen()
被调用了几次。显示服务器的代码