Testaustoimintoja oikeiden poikkeusten heittämiseksi
Poikkeusten testaamiseen voimme käyttää throwChain esittämää väitettä. Tämän väitteen avulla voimme löytää poikkeuksen vaihtoehdon ja kaikki lisätiedot, jotka haluamme ylläpitää. Sisällyttämällä tämän väitteen testitapauksille voimme tarjota, että toimintomme toimivat odotetulla tavalla ja käsittelevät virhetilanteita eteenpäinsti.
Tarkastellaan esimerkkiä, jossa meillä on funktio, joka jakaa kaksi lukua. Haluamme haluamme, että funktio antaa poikkeuksen nollalla jakaessaan. Voimme kirjoittaa testitapauksen Ketju throwväitteen avulla palautetta, heittääkö funktio oikein DivideByZeroErrornollalla jakaessaan.
const { expect } = require('chai');
function divide(a, b) {
if (b === 0) {
throw new Error('DivideByZeroError');
}
return a / b;
}
describe('divide', () => {
it('should throw DivideByZeroError when dividing by zero', () => {
expect(() => divide(10, 0)).to.throw('DivideByZeroError');
});
it('should return the correct result when dividing two numbers', () => {
expect(divide(10, 5)).to.equal(2);
});
});
Yllä tässä esimerkissä käytämme väitettä to.throwtarkoituksen vuoksi, että dividefunktio heittää a:n DivideByZeroError, kun se jaetaan nollalla. Väite on kääritty funktioon, jotta se voi havaita poikkeuksen ja vaatii tarvittavia tarkastuksia.
Sisällyttämällä testit vahvista poikkeuksen heittoon, voimme varmistaa, että toimintomme käsittelevät virhetilanteita tilasta ja antavat mielekästä palautetta odottamattomien tilanteiden sattuessa. Tämä auttaa parantamaan koodimme yleistä laatua ja luotettavuutta.
Yhteenvetona voidaan todeta, että poikkeuksia tekevien toimintojen testaus on tärkeä osa ohjelmistotestausta. Chain throwväitteen avulla voimme helposti tarjota, että toiminnot odotetut poikkeukset tarvittaessa. Sisällyttämällä näitä testit testausstrategiaamme voimme parantaa sovelluksiemme kestävyyttä ja paremman käyttökokemuksen.
"Node.js, Mocha ja Chai" -sarjan kolmannessa artikkelissa tutkimme, kuinka toimintoja ja menetelmiä testataan Chain avulla. Chai on tehokkaan kirjaston arvojen ja tulosten testaamiseen JavaScript-koodissa.
Objektimenetelmien ja niiden käyttäytymisen testaus
Objektin menetelmien tarkistamiseksi voimme käyttää väitteitä, jotka on saatu testauskehyksestä, kuten Mocha ja Chai. Nämä väitteet antavat meille tehdä väitteitä esiintyiden ominaisuuksista ja käyttäytymisestä.
Tarkastellaan esimerkkiä, jossa meillä on, jota calculatoryhdessä-, objektiys-, kerto- ja jakolaskumenetelmillä. Haluamme haluta, että nämä menetelmät tuottavat oikeat tulokset. Voimme kirjoittaa testitapauksia syytä Chain väitteitä varten näiden menetelmien käyttäytymisen.
const { expect } = require('chai');
const calculator = {
add: (a, b) => a + b,
subtract: (a, b) => a - b,
multiply: (a, b) => a * b,
divide: (a, b) => a / b,
};
describe('calculator', () => {
it('should return the correct sum when adding two numbers', () => {
expect(calculator.add(5, 3)).to.equal(8);
});
it('should return the correct difference when subtracting two numbers', () => {
expect(calculator.subtract(5, 3)).to.equal(2);
});
it('should return the correct product when multiplying two numbers', () => {
expect(calculator.multiply(5, 3)).to.equal(15);
});
it('should return the correct quotient when dividing two numbers', () => {
expect(calculator.divide(6, 3)).to.equal(2);
});
});
Yllä olevassa väitteessä esimerkissä käytämme arvomme expect, että objektiivin calculatorpalauttaa odotetut tulokset. Jokaisen testitapaus huomioyn menetelmään ja takaisin, palauteako se lähdön useille tulolle.
Suorittamalla nämä testitapaukset voimme sanoa, että kohteen menetelmät calculatortoimivat odotetulla tavalla ja tarkat tulokset.
Metodeiden palautusarvojen tarkistamisen lisäksi voimme väittää myös objektien muiden ominaisuuksien ja käyttäytymisen tarkistamiseen. Chai tarjoaa laajan valikoiman väitteitä, avulla voimme tehdä erilaisia väitteitä, kuten ominaisuusarvojen tarkistamista, menetelmäkutsujen tarkistamista ja paljon muuta.
Testaamalla perusteellisesti objektin menetelmiä voimme tarjota niiden todellisuuden ja luotettavuuden, mikä takaa koodikantamme yleistä laatua.