柴单元测试错误

时间:2018-08-23 06:20:37

标签: node.js unit-testing mocha chai

我正在尝试为以下名为 a.js

的文件编写单元测试
var express = require('express');
var router = express.Router();

router.get('/getHCQ', function (req, res) {
  res.send("OK");
});

module.exports = router;

单元测试文件: a.spec.js

var chai = require('chai');
var chaiHttp = require('chai-http');
var should = chai.should();

var a = require('./a');

describe('Unit Test', function () {
it('should run this', function (done) {
    chai.request(a)
        .get('/getHCQ')
        .end(function(err, res) {
            res.should.have.status(200);
            done();
        });
    });
});

我正在使用 Mocha 运行它,但收到以下错误消息:

Uncaught TypeError: Cannot read property 'apply' of undefined
  at Immediate.<anonymous> (node_modules/express/lib/router/index.js:635:14)

有人可以帮我弄清楚我在做什么错吗?

1 个答案:

答案 0 :(得分:0)

也许您忘记为chai配置chai-http

var chai = require('chai');
var chaiHttp = require('chai-http');
var should = chai.should();

chai.use(chaiHttp); // <-- add this

var a = require('./a');

describe('Unit Test', function () {
it('should run this', function (done) {
    chai.request(a)
        .get('/getHCQ')
        .end(function(err, res) {
            res.should.have.status(200);
            done();
        });
    });
});