如何在路由器功能NodeJS / Mocha / Chai上进行单元测试

时间:2018-03-06 21:11:01

标签: javascript node.js mocha chai

如果我想在这台路由器上进行单元测试,应该怎么样?

router
.post('/set-permission', (req, res) => {
    Board.updateBoard(req.body)
        .then(resp => { 
            console.log(resp.permissions);
            res.json(resp.permissions);
        })
})

module.exports = router;

我在项目/测试里面的文件夹是文件.js和所需的chai库。现在我应该用参数执行这个函数?但是怎么样?有人可以解释一下吗?

1 个答案:

答案 0 :(得分:0)

您可以使用chai.http,以便测试HTTP应用。只需确保按原样导出app

// api.spec.js
const chai = require('chai')
const chaiHttp = require('chai-http')
const server = require('../app.js')

chai.should()
chai.use(chaiHttp)

describe('User permissions', () => {
  it('sets the user permissions', () => {
    // Notice we are sending the request to the `server` export instead
    // of a URL
    return chai.request(server)
      .post('/set-permission')
      .then(res => {
        res.should.have.status(200)
        // add more tests here as you see fit
      })
      .catch(err => {
         throw err
      })
  })
})

另请注意,这更多是集成测试,而不是单元测试。