我正在尝试使用Chai测试文件上传。
我有这个 html
<form method="POST" enctype="multipart/form-data" action="/file/upload">
<input id="file" type="file" name="filename">
<input id ="submit"type="submit" value="upload">
</form>
这个 API
let fileStorage = require('../model/FileStorage');
let router = require('express').Router();
router.post('/upload', function(req, res){
let file = req.files.filename;
let filename = file.name;
file.mv('./upload/'+filename, function(err){
if(err) {
res.status(500).end("500: Internal server error");}
else {//insert in db
fileStorage.create({name: filename})
.then(doc => res.send({message:"a "+doc}).status(200).end());
}
});
当我发送文件通过HTML上传时,此代码有效。
我去测试时会出现问题,因为测试用例返回状态500并且测试失败。
这是测试用例
it('dovrebbe UPPARE il file', function(done){
chai.request(server)
.post('/file/upload')
.field('customKey', 'customValue')
.attach('files', '/Users/francescovicidomini/git/ExampleNodeJS/server/upload/upload.txt', 'upload.txt')
.end(function(err, res){
res.should.have.status(200);
done();
});