2013-07-15 3 views
2

Mocha.js 및 Should.js를 사용하여 express.js 앱이 올바른 데이터를 다시 보내고 있는지 효과적으로 테스트 할 수 있습니까?express.js 앱을 테스트 할 Mocha.js 및 Should.js

우리가 묻는 이유는 때로는 req.xhr 동일한 데이터를 다른 형식으로 되돌려 보낼 경우 경로의 확장명에 따라 다릅니다. 따라서 우리는 주어진 상황에서 적절한 경로를 따라 가고 있는지 확인하기를 원합니다.

should.js에서 읽을 수있는 결과를 다시 보낼 수있는 방법이 있습니까?

답변

2

모카를 사용하여 엔드 투 엔드 HTTP 테스트를 요청할 수 있습니다. 다음은 app.js가 서버를 실행하는 예입니다.

process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; // Avoids DEPTH_ZERO_SELF_SIGNED_CERT error for self-signed certs 
var request = require('request').defaults({ encoding: null }); 
var fs = require('fs'); 
var expect = require('expect.js'); 
var app = require("../../app.js"); 
var hash = function (file) { crypto.createHash('sha1').update(file).digest('hex') }; 

describe('Static tests', function() { 
    it('should serve out the correct favicon', function (done) { 
     var favicon = fs.readFileSync(__dirname + '/../../../public/img/favicon.ico'); 
     request.get('https://localhost:' + process.env.PORT + '/favicon.ico', function (err, res, body) { 
      expect(res.statusCode).to.be(200); 
      expect(hash(body)).to.be(hash(favicon)); 
      done(); 
     }); 
    }); 
});