如何使用请求js和jasmine测试带有文件上载的nodejs POST Web服务?

时间:2016-01-07 17:38:22

标签: javascript json node.js mongodb jasmine

我使用nodeJS(express)创建了一个Web服务,该服务接收一个JSON文件,读取它并将其内容作为文档存储在mongodb中。

POST路由正常。代码看起来像这样

var multipart = require('connect-multiparty');
var fs = require('fs');
router.post('/', multipartMiddleware, function(req, res) {
  fs.readFile(req.files.swagger.path, 'utf8', function(err, data) {
    req.body.swagger = JSON.parse(data);
    .
    .
  });
});

基本上,它从req.files中的JSON文件中获取数据并放入req.body对象内。

我需要在Jasmine spec文件上完成相同的操作。我能够使用POSTman对Web服务进行物理测试,但我需要使用jasmine通过spec文件对其进行测试。目前,我想检查网络服务是否会引发200 OK状态,但它会抛出500

到目前为止,我的jasmine-node测试套件看起来像这样

describe("POST /", function() {

it("returns status code 200", function(done) {
  var req = request.post(base_url, function(error, response, body) {
        expect(response.statusCode).toBe(200);
  });

  var form = req.form();
  form.append('file','<FILE_DATA>', {
    filename : "sample.json",
    contentType : "text/plain"
  });
  console.log("Form", form);

  });
});

如何以编程方式将文件上传到nodejs服务器,以便我可以在我的规范中从req.files获取文件?

0 个答案:

没有答案