2

我正在尝试使用 chai-http 测试身份验证 api,但是我无法获得此特定块的任何响应 -

describe('Authenticate user', () => {
it('Should Authenticate user', () => {
    let server = require(process.cwd() + "/server.js")
    let token
    chai.request(server)
        .post('/api/authenticate')
        .send({
            "userid": "Jeetendra",
            "password": "abcd1234"
        })
        .then(res => {
            console.log('Inside authenticate result block')
            console.log(res)
            token = res.body.data
        },err => {
           console.log('Inside authenticate error block')
            // token = res.body.data
            console.log(err)
        })
  })
})

对于上面的代码块,我没有打印任何日志。谁能帮助我在这里错过什么?

4

2 回答 2

2

似乎您的代码正在异步运行。您需要将done回调传递给您的测试用例,然后调用它以标记测试完成

it('Should Authenticate user', (done) => {
    let server = require(process.cwd() + "/server.js")
    let token
    chai.request(server)
        .post('/api/authenticate')
        .send({
            "userid": "Jeetendra",
            "password": "abcd1234"
        })
        .then(res => {
            console.log('Inside authenticate result block')
            console.log(res)
            token = res.body.data
            done()
        },err => {
           console.log('Inside authenticate error block')
            // token = res.body.data
            console.log(err)
            done(err)
        })
  })
于 2017-03-15T13:23:57.457 回答
1

摩卡咖啡

取自Mocha 文档

不鼓励将箭头函数(“lambdas”)传递给 Mocha。由于 this 的词法绑定,这些函数无法访问 Mocha 上下文。

使用done()kind of 会一起杀死 Promise 的目的。通常只需更改=>function(){}in即可it解决问题。

describe('Authenticate user', () => {
  it('Should Authenticate user', function(){ // use function rather than arrow
   let server = require(process.cwd() + "/server.js")
   let token
   chai.request(server)
     .post('/api/authenticate')
     .send({
       "userid": "Jeetendra",
       "password": "abcd1234"
     })
    .then(res => {
      console.log('Inside authenticate result block')
      console.log(res)
      token = res.body.data
    },err => {
      console.log('Inside authenticate error block')
      // token = res.body.data
      console.log(err)
    })
  })
})
于 2017-08-20T11:03:10.877 回答