Tartalomjegyzék

< Jasmine

Jasmine - Hibakezelés tesztelése

Tesztelendő függvény

Legyen egy checkInput() nevű függvény, ami bemenetet teszteli. Helytelen bemenet esetén hibával le kell állnia. Ezt az if() utasítás biztosítja, a benne található throw new Error() kifejezéssel.

src/app.js
function checkInput(input) {
    if(input<1) {
        throw new Error('Hiba! 1-nél kisebb érték!')
    }
    let res = input.match(/^[0-9]+$/);
    return res;
}

Kivétel megkövetelése

Az expect() számára egy névtelen függvényt adunk át, amiben helytelen adattal meghívjuk a checkInput() függvényt.

test/app.spec.js
    it('Hibát dob ha kisebb 1-nél az éréték?', () => {        
        expect(() => {
            checkInput('-3')
        }).toThrow();
    });

A hibaüzenet bármi lehet, nincs megkövetelve, mi legyen.

Adott szöveg megkövetelése

Nem csak leállást hibával, de a konkrét szöveget is megkövetelhetjük.

Elsőként használjuk a toThrowError() függvényt:

test/app.spec.js
    it('Megadott hibát dob 0 vagy kisebb érték esetén?', () => {        
        expect(() => {
            checkInput('-3')
        }).toThrowError('Hiba! 0 vagy kisebb érték!');
    });

A toThrow() függvénnyel:

test/app.spec.js
    it('Megadott hibát dob 0 vagy kisebb érték esetén?', () => {        
        expect(() => {
            checkInput('-3')
        }).toThrow(new Error('Hiba! 0 vagy kisebb érték!'));
    });