Я тестирую приложение nodejs, написанное с использованием экспресс. Для модульного тестирования я использую chai и sinon. У меня есть следующий маршрут в моем API, который я хотел бы протестировать.
В моем тесте я моделирую запрос на получение с помощью следующего кода:
chai.request(app)
.get('/downloads')
.send({ wmauth: {
_identity: {
cn: "username",
}
} })
.end((err, res) => {
res.status.should.be.equal(200);
res.body.should.be.a('object');
res.body.should.have.property('Items', []);
AWS.restore('DynamoDB.DocumentClient');
done();
Однако я всегда получаю сообщение об ошибке «Не удается прочитать свойство '_identity' of undefined». Поскольку объект «wmauth» не отправляется в запросе, он не определен. Я попытался использовать метод отправки, чтобы попытаться включить его в запрос, но безуспешно. Я думаю, мне нужно как-то издеваться над этим и отправить его в запрос, но я понятия не имею, как это сделать. Может ли кто-нибудь помочь мне с этим? Ниже метод для тестирования:
app.get('/downloads', async (req, res) => {
const created_by_cn = req.wmauth['_identity'].cn;
if(!created_by_cn) {
return res.status(400).json({
error: 'Mandatory parameters: created_by_cn',
});
}
try {
const data = await downloadService.getDownloads(created_by_cn);
return res.status(200).json(data);
}
catch(error){
res.status(500).json({error: error.message});
}
});
Благодарность