Testaustoimintoja oikeiden poikkeusten heittämiseksi
Poikkeusten testaamiseen voimme käyttää throw
väitteen esittämää väitettä Chai. Tämän väitteen avulla voimme määrittää poikkeuksen tyypin ja kaikki lisätiedot, jotka haluamme vahvistaa. Sisällyttämällä tämän väitteen testitapauksillemme voimme varmistaa, että toimintomme toimivat odotetulla tavalla ja käsittelevät virhetilanteita asianmukaisesti.
Tarkastellaan esimerkkiä, jossa meillä on funktio, joka jakaa kaksi lukua. Haluamme varmistaa, että funktio antaa poikkeuksen nollalla jakaessaan. Voimme kirjoittaa testitapauksen käyttämällä Chai 's throw
väitettä tarkistaaksemme, heittääkö funktio oikein DivideByZeroError
nollalla 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ä olevassa esimerkissä käytämme väitettä to.throw
varmistaaksemme, että divide
funktio heittää a:n DivideByZeroError
, kun se jaetaan nollalla. Väite on kääritty funktioon, jotta se voi havaita poikkeuksen ja suorittaa tarvittavat tarkastukset.
Sisällyttämällä testit oikean poikkeuksen heittoon, voimme varmistaa, että toimintomme käsittelevät virhetilanteita asianmukaisesti 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. Chai n väitteen avulla throw
voimme helposti varmistaa, että funktiomme heittävät odotettuja poikkeuksia tarvittaessa. Sisällyttämällä nämä testit testausstrategiaamme voimme parantaa sovelluksiemme kestävyyttä ja tarjota paremman käyttökokemuksen.
Mocha Sarjan "Node.js,, ja " kolmannessa artikkelissa Chai tutkimme, miten toimintoja ja menetelmiä testataan käyttämällä Chai. Chai on tehokas väitekirjasto arvojen ja tulosten testaamiseen koodissa JavaScript.
Objektimenetelmien ja niiden käyttäytymisen testaus
Objektin menetelmien tarkistamiseksi voimme käyttää testauskehysten, kuten Mocha ja, tarjoamia väitteitä Chai. Nämä väitteet antavat meille mahdollisuuden tehdä väitteitä esineiden ominaisuuksista ja käyttäytymisestä.
Tarkastellaan esimerkkiä, jossa meillä on objekti, jota kutsutaan calculator
yhteen-, vähennys-, kerto- ja jakolaskumenetelmillä. Haluamme varmistaa, että nämä menetelmät tuottavat oikeat tulokset. Voimme kirjoittaa testitapauksia käyttämällä Chai n väitteitä varmistaaksemme näiden menetelmien toiminnan.
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 esimerkissä käytämme Chai väitettä expect
varmistaaksemme, että objektin menetelmät calculator
palauttavat odotetut tulokset. Jokainen testitapaus keskittyy tiettyyn menetelmään ja tarkistaa, palauttaako se oikean lähdön tietylle tulolle.
Suorittamalla nämä testitapaukset voimme varmistaa, että kohteen menetelmät calculator
toimivat odotetulla tavalla ja antavat tarkat tulokset.
Metodeiden palautusarvojen tarkistamisen lisäksi voimme käyttää väitteitä myös objektien muiden ominaisuuksien ja käyttäytymisen tarkistamiseen. Chai tarjoaa laajan valikoiman väitteitä, joiden avulla voimme tehdä erilaisia väitteitä objekteista, kuten ominaisuusarvojen tarkistaminen, menetelmäkutsujen tarkistaminen ja paljon muuta.
Testaamalla perusteellisesti objektin menetelmiä voimme varmistaa niiden oikeellisuuden ja luotettavuuden, mikä edistää koodikantamme yleistä laatua.