我正在尝试对以下函数 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/