2016-12-01 47 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); 
    }); 
    }); 
});