2016-12-01 51 views
0

我跟着一些在线教程,并发现了测试可以使用mocha写,我成功地写了一个小的,我在网上找到正确的方式写在expressjs

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

回答

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); 
    }); 
    }); 
});