我想测试create、findById和GetList这三个express API。
我想反复调用create API来测试getlist函数。
但是如果我使用for循环语法,那就会发生TCPWRAP错误。如何在supertest中重复调用API?
test("Make Some Products (10)", (done)=> {
for(let i=0;i<10;i++) {
agent
.post(`/api/product`)
.send({
...productJson,
title: productJson.title + String(i),
})
.expect(200)
.end((err, res) => {
if(err) throw err;
expect(res.body.success).toBeTruthy();
productIds.push(PRODUCT_ID);
});
}
done();
});
1条答案
按热度按时间ybzsozfc1#
据我所知,这不是编写测试的正确方法。
1-如果你想测试
create
函数,那么就不需要循环了。一个电话就够了。2-如果你想测试
getList
函数,那么你不应该在填充数据库时使用expect()。你只需要expect()来检查getList
的返回值。3-填充数据库的更好方法是使用jest的
beforeEach()
中的数据库模块的方法(例如mongoose的model.save()
)。