Saya sedang dalam proses mempelajari Node.js dan telah bermain-main dengannya Express . Benar-benar menyukai kerangka kerjanya; namun, saya mengalami kesulitan untuk mengetahui cara menulis tes unit / integrasi untuk suatu rute.
Mampu menguji unit modul sederhana itu mudah dan telah dilakukan bersama Mocha ; namun, pengujian unit saya dengan Express gagal karena objek respons yang saya teruskan tidak mempertahankan nilainya.
Route-Function Under Test (routes / index.js):
exports.index = function(req, res){
res.render('index', { title: 'Express' })
};
Modul Uji Unit:
var should = require("should")
, routes = require("../routes");
var request = {};
var response = {
viewName: ""
, data : {}
, render: function(view, viewData) {
viewName = view;
data = viewData;
}
};
describe("Routing", function(){
describe("Default Route", function(){
it("should provide the a title and the index view name", function(){
routes.index(request, response);
response.viewName.should.equal("index");
});
});
});
Ketika saya menjalankan ini, gagal untuk "Kesalahan: kebocoran global terdeteksi: viewName, data".
Di mana kesalahan saya sehingga saya bisa mendapatkan ini bekerja?
Apakah ada cara yang lebih baik bagi saya untuk menguji kode saya pada level ini?
Perbarui 1. Potongan kode yang diperbaiki karena saya awalnya lupa "it ()".