什么npm包用于单元测试POST请求?

时间:2016-03-01 15:37:03

标签: javascript node.js unit-testing express

必须有选项来设置POST请求的req.params。

supertest包不提供此功能,或者没有详细记录,以便明确它。

3 个答案:

答案 0 :(得分:0)

如果您正在测试快速应用程序,supertest支持POST以及大多数其他HTTP方法。快递req.params由URL的路径部分填充,因此您可以执行类似

的操作
var app = require('./my-app')
var request = require('supertest')(app)

request.post('/some/path/req/params/is/here?some=query')
  .send({some: 'body'})
  .expect(200)
  .end(function (error, res) {
    assert(res.body.something === 'value')
  })

答案 1 :(得分:0)

是的,您可以使用超级测试,因为它与superagent具有相同的操作,这是一个示例:

request
  .post('/api/pet')
  .send({ name: 'Manny', species: 'cat' })
  .set('X-API-Key', 'foobar')
  .set('Accept', 'application/json')
  .end(function(err, res){
    // Calling the end function will send the request 
  });

https://github.com/visionmedia/supertest

  

默认情况下,发送字符串会将Content-Type设置为   application / x-www-form-urlencoded,将连接多个调用   使用&amp ;,这里得到name = tj& pet = tobi:

request.post('/user')
    .send('name=tj')
    .send('pet=tobi')
    .end(callback);

答案 2 :(得分:0)

supertest docs说:

  

你可以用superagent做什么,你可以用supertest

因此,以下应该可以正常工作:

request(app)
.post('/')
.query({format: 'json'})
.expect(....)