ผมอยู่ในขั้นตอนของการเรียนรู้ Node.js และได้รับการเล่นรอบกับเอ็กซ์เพรส ชอบกรอบมากอย่างไรก็ตามฉันมีปัญหาในการหาวิธีเขียนหน่วย / การทดสอบการรวมสำหรับเส้นทาง
ความสามารถในการหน่วยโมดูลที่เรียบง่ายการทดสอบเป็นเรื่องง่ายและได้รับการทำมันด้วยMocha ; อย่างไรก็ตามการทดสอบหน่วยของฉันด้วย Express ล้มเหลวเนื่องจากวัตถุตอบสนองที่ฉันส่งผ่านไม่คงค่าไว้
ฟังก์ชั่นเส้นทางภายใต้การทดสอบ (เส้นทาง / index.js):
exports.index = function(req, res){
res.render('index', { title: 'Express' })
};
โมดูลทดสอบหน่วย:
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");
});
});
});
เมื่อฉันเรียกใช้สิ่งนี้จะล้มเหลวสำหรับ "ข้อผิดพลาด: ตรวจพบการรั่วไหลทั่วโลก: viewName, data"
ฉันทำผิดตรงไหนเพื่อที่ฉันจะได้ทำงานนี้
มีวิธีที่ดีกว่าสำหรับฉันในการทดสอบหน่วยรหัสในระดับนี้หรือไม่
อัปเดต 1. แก้ไขข้อมูลโค้ดเนื่องจากตอนแรกฉันลืม "it ()"