Supertest - res/req没有定义



我是超级测试的新手,我想找出一个简单的任务。我正在测试一个post请求,它分配了一个userkey,如下所示:

app.post('/game/:username', function(req, res){
    var image = req.body.image;
    var userName = req.params.username;
    var userKey = '';
    if(userName === 'player1'){
      userKey = 'player_1_id';
    } else if(userName === 'player2'){
      userKey = 'player_2_id';
    } else if(userName === 'player3'){
      userKey = 'player_3_id';
    } else {
      userKey = 'player_4_id';
    }}

当我试着测试这个时,我一直得到"res is not defined",我不知道为什么!

  it('assigns a user key properly', function(done) {
    request(app)
      .post('/game/:username')
      .send({
        image: "image/png",
        username: "player1",
        userKey: ""
      })
      .expect(201)
      .expect(res.body.should.have.property("userKey"))
    // .expect()

    .end(function(err, res) {
      if (err) return done(err);
      done();
    })
  })

您的错误是因为您没有在期望中定义res

您可以在github/supertest中查看.expect(function(res) {})文档部分

试试这个:

  it('assigns a user key properly', function(done) {
    request(app)
      .post('/game/:username')
      .send({
        image: "image/png",
        username: "player1",
        userKey: ""
      })
      .expect(201)
      .expect(function(res){
         res.body.userKey!=undefined
      })
    // .expect()
    .end(function(err, res) {
      if (err) return done(err);
      done();
    })
  })

最新更新