如何在Mocha中对文件上传进行单元测试

我有一个基于Express.js构建的应用程序,我想测试文件上传功能。我正在尝试重现解析为req.files的对象(使用express.bodyParser中间件时)。我怎样才能做到这一点?

回答:

您可以直接在Mocha中执行此操作,但这有点棘手。这是发布图像的示例:

var filename = 'x.png'

, boundary = Math.random()

request(app)

.post('/g/' + myDraftGallery._id)

.set('Content-Type', 'multipart/form-data; boundary=' + boundary)

.write('--' + boundary + '\r\n')

.write('Content-Disposition: form-data; name="image"; filename="'+filename+'"\r\n')

.write('Content-Type: image/png\r\n')

.write('\r\n')

.write(fs.readFileSync('test/'+filename))

.write('\r\n--' + boundary + '--')

.end(function(res){

res.should.have.status(200)

done()

})

Content-Disposition 的 name

参数是通过req.files(以req.files.image为例)可访问文件的内容。您还可以使用如下数组值:name =“ images

[]”和文件(s)将通过数组提供,例如:req.files.images [0]

另外,如果您还没有使用过它,那么应该看看一下(使mocha /

express测试〜bit〜更加容易):https

//github.com/visionmedia/express/blob/master/test/support/http

.js

:由于express

3-beta5,express使用supertest。要查看旧的http.js代码,请点击此处:https

:

//github.com/visionmedia/express/blob/3.0.0beta4/test/support/http.js

或直接移至超级测试。

以上是 如何在Mocha中对文件上传进行单元测试 的全部内容, 来源链接: utcz.com/qa/398192.html

回到顶部