如何通过超级测试发送formData对象?

问题描述 投票:2回答:1

我刚刚开始学习超级测试和摩卡测试。我已经阅读了supertest的api文档,它说supertest支持superagent提供的所有较低级别的API。 SuperAgent说我们可以通过以下方式发送formData对象:

request.post('/user')
    .send(new FormData(document.getElementById('myForm')))
    .then(callback)

但是当我尝试使用这种形式的超级测试发送formData对象时:

server
    .post('/goal_model/images/' + userId + '/' + tmid)
    .set('Authorization',`Bearer ${token}`)
    .send(formData)
    .expect("Content-type",/json/)
    .expect(201)
    .end(function(err,res){
         should(res.status).equal(201);
         console.log(res.message);
         done();
    });

formData类似于:

let file;
let formData = new FormData();
let fn = "../../../Downloads/Images/5k.jpg";
formData.append("image", file);

然后,当我尝试发送此对象时,它只是说:

TypeError: "string" must be a string, Buffer, or ArrayBuffer

是否可以通过这种方式发送formData对象?我做错了什么或怎么做?如果没有,为什么?我搜索了许多相关问题,但没有一个可以解决我的问题。我现在真的很挣扎。

我刚刚开始学习超级测试和摩卡测试。我已经阅读了supertest的api文档,它说supertest支持superagent提供的所有较低级别的API。 SuperAgent说我们可以...

node.js supertest superagent
1个回答
0
投票

您可以使用.attach()supertest方法将文件发送到服务器。 .attach的功能签名:

© www.soinside.com 2019 - 2024. All rights reserved.