如何解决未捕获的类型错误:无法使用“in”运算符在 undefined => Chai-http+sinon 中搜索“status”
我有一个 API 可以访问数据库中的数据。基于来自 DB 的响应有多种测试场景,所以我想模拟来自数据库助手的响应。
源代码如下,
exports.getAll = async (req,res) => {
try {
const dbRes = await helper
.getInstance()
.listDocuments(constants.DB_NAMES.soMETHING);
res.json(dbRes)
} catch (err) {
res.status(err.statusCode).json(err);
}
};
我写的测试如下,
describe('this might work,not sure',() => {
it('should return something',async (done) => {
try {
sinon.stub(helper.getInstance(),'listDocuments').resolves([{ a: 'b' }]);
chai.request(app)
.get(`/something`)
.set('Authorization',"Bearer <access-token>")
.type('json')
.send()
.end(function(err,res) {
expect(res).to.have.status(200);
expect(res.body.payload).to.be.an('array');
done();
});
} catch (err) {
console.log(err);
done();
}
});
});
除了 sinon 存根之外的代码实际上用于从实际数据库中检索数据并通过。这是我试图避免的与数据库的交互。请告诉我正确的方法。现在,有了这个,我得到了标题中提到的错误。请帮我理解我哪里出错了
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。