我正在进行柴测试的练习。我的POST路线无法通过测试。
这是我遇到的两个错误:
1) Todo API:
POST /v1/todos
should create and return a new todo when provided valid data:
AssertionError: expected header 'location' to have value /v1/todos/5c84450e466b4b769a39cdc1 but got undefined
at chai.request.post.send.then.res (test/server.test.js:114:27)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:189:7)
2) Todo API:
POST /v1/todos
should respond with 400 status when given bad data:
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
我不知道如何在响应中设置标题。而且,我不确定为什么我的条件没有捕获到不良数据情况。我在此glitch
上有它答案 0 :(得分:0)
首先,因为它是一个异步测试,所以您可能需要像这样调用“完成”:
it('should do something async', function(done) {
someasyncstuff().then(function(results) {
done()
}
}
第二,您需要在server.js中指定要发送的实际位置标头:
res.location('/mylocationheaderhere');
res.status(201).json(...);
例如此处:'res.location(path)' does not do anything? (Express)
最后,如果要在server.js中使用“ id”,则需要在测试代码的正文中将其发送:
const newItem = {
'title': 'Do Dishes',
id: 12345
};