微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

未捕获的类型错误:无法使用“in”运算符在 undefined => Chai-http+sinon 中搜索“status”

如何解决未捕获的类型错误:无法使用“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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?