gpt4 book ai didi

javascript - 如何对以 res.send(200, object) 结尾的 javascript 函数进行单元测试

转载 作者:行者123 更新时间:2023-12-03 03:05:52 24 4
gpt4 key购买 nike

我正在尝试对以下函数 getAllPeopleFromDB 进行单元测试:

export const getAllPeopleFromDB = async (req, res) => {
const people = await getAllAustralianPeopleFromDB();
res.send(200, people);
};

问题是,我不知道如何处理最后的 res.send(200, people) 。

这是我的尝试(这可能有用,也可能没用):

  // datastoreService.getAllAustralianPeopleFromDB = jest.fn().mockImplementation(() => (
// new Promise(resolve => resolve('stub'))
// ));

// describe('getAllPeopleFromDB', () => {
// test('that body contains people and has 200 status', (done) => {
// req = {};
// res = {};

// getAllPeopleFromDB(req, res).then((response) => {
// expect(response).toContain(['stub', 200]);
// done();
// });
// });
// });

最佳答案

您可以定义.send res上的方法对象,它接受数据参数(正在发送的数据)并存储它,以便可以检查其值。您的测试代码当前检查传递给.then()的数据。 ,这将是 undefined ,自 getAllPeopleFromDB不解析值。

尝试:

describe('getAllPeopleFromDB', () => {
test('that body contains people and has 200 status', (done) => {

let responseData = ''
const req = {};
const res = {send: function(status, data) {responseData = data}};

getAllPeopleFromDB(req, res).then(() => {
expect(responseData).toContain('whatever');
done();
});
});
});

关于javascript - 如何对以 res.send(200, object) 结尾的 javascript 函数进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47171301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com