你如何通过mocha / chai上传文件进行测试?

时间:2016-10-20 21:26:49

标签: node.js amazon-web-services testing mocha chai

我正在使用客户端向服务器发送请求以将文件上载到s3存储桶的方法,然后服务器发回一个签名请求以允许客户端执行此操作。我正在学习本教程 -

https://devcenter.heroku.com/articles/s3-upload-node

有谁知道如何为此编写API端点测试?我不是在做客户端代码,因为它是一个iPhone应用程序,但我仍然想在我的测试中测试我的端点。

1 个答案:

答案 0 :(得分:0)

基于这样的代码,来自您的链接:

app.get('/sign-s3', (req, res) => {
  const s3 = new aws.S3();
  const fileName = req.query['file-name'];
  const fileType = req.query['file-type'];
  const s3Params = {
    Bucket: S3_BUCKET,
    Key: fileName,
    Expires: 60,
    ContentType: fileType,
    ACL: 'public-read'
  };

  s3.getSignedUrl('putObject', s3Params, (err, data) => {
    if(err){
      console.log(err);
      return res.end();
    }
    const returnData = {
      signedRequest: data,
      url: `https://${S3_BUCKET}.s3.amazonaws.com/${fileName}`
    };
    res.write(JSON.stringify(returnData));
    res.end();
  });
});

我会进行单元测试,因为完整的集成测试将取决于您的测试环境中的aws帐户。为此,我会模拟reqs3.getSignedUrl并测试使用正确的参数调用getSignedUrl。我还会添加一个测试,仍然使用mock,以确保返回正确的json。