gpt4 book ai didi

node.js - Mocha 使用 supertest ,类型错误 : cannot read property 'call' of undefined

转载 作者:行者123 更新时间:2023-11-28 21:21:02 25 4
gpt4 key购买 nike

我正在学习对我的基本 Todo 应用程序使用异步测试。但是我在为我的应用程序开发测试套件时发现了一个错误,

我想使用我的测试套件删除待办事项。

这是我的代码:

app.delete('/todos/:id', (req,res) => {
const id = req.params.id ;

if(!ObjectID.isValid(id))
return res.status(400).send();

Todo.findByIdAndRemove(id)
.then((todo) => {
res.send(todo);
}, (error) => {
res.status(404).send();
});
});

这是测试套件的代码:

const todos = [{
_id: new ObjectId(),
text: 'first Todo'
},
{
_id: new ObjectId(),
text: 'Second Todo'
}
];

beforeEach((done) => {
Todo.remove({}).then(() => {
return Todo.insertMany(todos);
done();
}).then(() => {
done();
}).catch(e => {
console.log(e);
done();
});
});

describe('DELETE /todos/:id', () => {
it('should delete a todo', (done) => {

request(app)
.delete(`/todos/${todos[1]._id.toHexString()}`)
.expect(200)
.end(done());
});
});

我发现了一个像这样的错误:

 Uncaught TypeError: Cannot read property 'call' of undefined
at Test.assert (node_modules/supertest/lib/test.js:181:6)
at Server.assert (node_modules/supertest/lib/test.js:131:12)
at emitCloseNT (net.js:1655:8)
at _combinedTickCallback (internal/process/next_tick.js:135:11)
at process._tickCallback (internal/process/next_tick.js:180:9)

谢谢

最佳答案

我遇到了同样的问题。因为使用.end(完成())代替.end(完成)这是正确的。

关于node.js - Mocha 使用 supertest ,类型错误 : cannot read property 'call' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51693323/

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