在expressjs中编写测试的正确方法

时间:2016-12-01 22:16:44

标签: node.js express mocha

我在网上查了一些教程,发现测试可以用mocha编写,我成功写了一个我在网上找到的小文件

var assert = require('assert');
describe('Array', function() {
  describe('#indexOf()', function() {
    it('should return -1 when the value is not present', function() {
      assert.equal(-1, [1,2,3].indexOf(4));
    });
  });
});

此后,我继续使用expressjs应用程序对其进行测试。我不确定如何编写适当的测试。

目前我需要在一个窗口中手动运行服务器并在另一个窗口中运行测试。另一个挫折是数据库,每次运行这些测试时,我都需要默认删除数据,即使用单独的数据库进行测试并在完成后删除内容。

因为大部分代码都是restfull api,所以我使用request来实际发出请求。

如果有人能指出我正确的方向,我真的很感激,所以我不必手动启动服务器并清除数据库只是为了运行测试。

  

快递应用程序是使用express-generator

生成的

1 个答案:

答案 0 :(得分:2)

导出您的快递应用,然后在测试中将其包含在发件人中。我对请求并不熟悉,但我相信chai-http或supertest可以做类似的事情。它还允许您通过代码覆盖工具(如NYC)运行此代码。

import { expect } from 'chai';
import request from 'supertest';
import server from '../../server/server';

describe('Test server', () => {
  describe('Fetch component', () => {
    it('Dont find route - return 404', done => {
      request(server)
        .get('/randomlocation')
        .expect(404, done);
    });
    it('Return component', (done) => {
      request(server)
        .get('/login')
        .expect(200, done);
    });
  });
});