首页 > 解决方案 > 动态添加表单数据并附加文件到超级测试中

问题描述

我有来自超测的以下要求:

let response = 
  await request(app)
  .post('/api/upload/');

I also have two objects that are named file and formData. 

file: {
  BufferData: <Buffer 00 24 43 ...>
  name: 'an_image.jpg'
}

formData: [{
  key: 'KeyTest',
  value: 'ValueTest',
}]

formData 可以接受由 key 和 value 组成的多个 formdata 值,因此它是一个对象数组。现在我希望这个请求是完全动态的,如果存在像上面这样的文件对象,我想添加 .attach(etc..); 如果存在非空的formdata数组,我想为该arrat中的每个对象添加.field。我该如何做到这一点?我认为这只是简单的 Javascript,但我遇到了死胡同。

更清晰的示例:

let response = 
  await request(app)
  .post('/api/upload/')
  .attach(file, etc..) // ONLY IF THE FILE OBJECT EXISTS
  .field(formdata1) ONLY IF FORMDATA ARRAY IS NOT EMPTY
  .field(formdata2)

标签: javascriptsupertest

解决方案


推荐阅读