如何模拟数据库Nodejs和Express js单元测试

时间:2016-09-27 11:17:36

标签: node.js unit-testing express mocha chai

我正在为我的应用程序使用Express js和Mysql,现在我想开始单元测试。我写了这段代码:

var request = require('supertest');
var server = require('./app');
var chai = require('chai');
var chaiHttp = require('chai-http');

var server = require('./app');

var should = chai.should();
chai.use(chaiHttp);

describe('loading express', function () {

  it('responds to /', function testSlash(done) {
    request(server)
      .get('/')
      .expect(200, done);
  });

  it('404 everything else', function testPath(done) {
    request(server)
      .get('/foo/bar')
      .expect(404, done);
  });

  it('responds to /customers/getCustomerData', function testPath(done) {
    request(server)
      .get('/customers/getCustomerData?id=0987654321')
      .end(function(err, res){
        res.should.have.status(200);
        res.body.should.be.a('object');
        res.body.status.should.equal("success");
        res.body.data.customerId.should.equal("0987654321");

        done();
      });
  });

});

这段代码工作正常,但它连接到数据库并检查我编写的所有测试用例,但这称为集成测试,我必须使用模拟数据库进行单元测试。我怎样才能实现这种数据库模拟?

0 个答案:

没有答案