- Unit testing: permettono di testare una classe, un metodo o anche una linea di codice. Tipicamente ogni unit test testa un singolo metodo e tipicamente ho:
- No database call
- No network call
- No filesystem call
- Component testing: una via di mezzo tra unit e integration, tipicamente si testano piΓΉ metodi insieme come fossero un componente. Eβ una sorta di unit testing ma con uno scope piΓΉ grande.
- Integration testing: in questa tipologia di test non testo solo il singolo metodo ma anche le sue dipendenze, quindi database, file system, network call e cosΓ¬ via. Fornisce una rappresentazione piΓΉ realistica di come si comporta lβapplicazione.
- E2E testing: in questo test seguo tutto il flusso dellβapplicazione, quindi a partire dalla chiamata dal mondo esterno seguendo tutti i componenti veri non mockati fino alla risposta.
- Performance testing: come dice il nome lβobiettivo Γ¨ capire le performance del sistema a fronte di un carico molto alto: per esempio faccio 1000 richieste API e verifico che il sistema rimanga corretto e risponda in tempi accettabili.
La rappresentazione dei test come unit β integration β E2E avviene tipicamente tramite una piramide in quanto piΓΉ si sale piΓΉ i test sono lenti e costosi, piΓΉ si scende piΓΉ sono veloci ed economici.