Skip to main content

Probatu zure middlewareak eurak bakarrik



Azalpena

Askok middlewarearen probak alde batera uzten dituzte sistemaren zati txiki bat adierazten dutelako eta zuzeneko Express zerbitzaria edukitzea behar dutelako. Bi arrazoi horiek okerrak dira: middlewareak txikiak dira, baina eskaera guztiei edo gehienei eragiten diete, eta erraz probatu daitezke {req,res} JS objektuak berreskuratzen dituzten funtzio huts gisa. Middleware funtzioak probatzeko, norberak funtzioa deitu behar du eta {req,res} objektuekin dagoen elkarrekintza espiatu (spy) (erabili Sinon adibide gisa), funtzioak ekintza zuzena egin duela ziurtatzeko. node-mock-http liburutegia oraindik ere urrutiago doa eta {req,res} objektuak faktorizatzen ditu beraien jokaera espiatuz. Adibidez, res objektuan zehaztutako http estatus bat espero den balioarekin bat datorren baiezta dezake (ikusi beheko adibidea)



Kode adibidea: probatu zure middlewarea bera bakarrik

//probatu nahi dugun middlewarea
const probapeanDagoenUnitatea = require("./middleware");
const httpMocks = require("node-mocks-http");
//Jest sintaxisa, Mochako describe() eta it()en baliokidea
test("Autentikazio goiburu gabeko eskaera, 403 http estatus bat bueltatu beharko luke", () => {
const request = httpMocks.createRequest({
method: "GET",
url: "/user/42",
headers: {
authentication: ""
}
});
const erantzuna = httpMocks.createResponse();
probapeanDagoenUnitatea(request, response);
expect(erantzuna.statusCode).toBe(403);
});