Testeatu erroreen fluxua zure test framework gustukoena erabiliz
Azalpena
Bide ‘alaiak’ probatzea ez da hutsegiteak probatzea baino hobea. Probako kodeen estaldura ona da salbuespenezko bideak probatzeko. Bestela, ez dago inolako konfidantzarik salbuespenak zuzen kudeatuta dauden. Unitateen azterketa esparru guztiek, Mocha eta Chaik bezala, onartzen dituzte salbuespen probak (kode adibideak beherago). Gogaikarria iruditzen bazaizu funtzio eta salbuespen bakoitza probatzea, REST APIen HTTP erroreak bakarrik probatzea erabaki zenezake
Kode adibidea: ziurtatu salbuespen egokia jaurtitzen dela Mocha eta Chai erabiliz
Javascript
describe("Facebooken txata", () => {
it("Jakinarazi txateko mezu berria iristean", () => {
const txatZerbitzua = new txatZerbitzua();
txatZerbitzua.parteHartzaileak = eskuratuDeskonektatutakoParteHartzaileak();
expect(txatZerbitzua.mezuaBidali.bind({ mezua: "Aupa" })).to.throw(
KonexioErrorea
);
});
});
Typescript
describe("Facebooken txata", () => {
it("Jakinarazi txateko mezu berria iristean", () => {
const txatZerbitzua = new txatZerbitzua();
txatZerbitzua.parteHartzaileak = eskuratuDeskonektatutakoParteHartzaileak();
expect(txatZerbitzua.mezuaBidali.bind({ mezua: "Aupa" })).to.throw(
KonexioErrorea
);
});
});
Kodearen adibidea: APIak HTTP errore kode zuzena bueltatzen duela ziurtatu
Javascript
it("Facebookeko talde berria sortu", () => {
const taldeOkerrarenInformazioa = {};
return httpRequest({
method: "POST",
uri: "facebook.com/api/groups",
resolveWithFullResponse: true,
body: taldeOkerrarenInformazioa,
json: true,
})
.then((response) => {
expect.fail(
"kodea bloke honetan exekutatu nahi bagenu, goiko operazioan errorerik ez da izan"
);
})
.catch((response) => {
expect(400).to.equal(response.statusCode);
});
});
Typescript
it("Facebookeko talde berria sortu", async () => {
let taldeOkerrarenInformazioa = {};
try {
const response = await httpRequest({
method: "POST",
uri: "facebook.com/api/groups",
resolveWithFullResponse: true,
body: taldeOkerrarenInformazioa,
json: true,
});
// kodea bloke honetan exekutatu nahi bagenu, goiko operazioan errorerik ez da izan
expect.fail("Eskaerak huts egin behar izango luke");
} catch (response) {
expect(400).to.equal(response.statusCode);
}
});