Ohjelmaa on testattu automaattisilla yksikkötesteillä ja integraatiotesteillä unittestillä sekä manuaalisesti järjestelmätasolla.
Tietokantoja käsittelevät UserRepository
sekä CharacterRepository
-luokat testataan erillisen tietokantatiedoston avulla, joka on määritelty .env.test-tiedostossa. Nämä testiluokat ovat TestUserRepository sekä TestCharacterRepository.
Sovelluslogiikasta vastaavat UserService
sekä CharacterService
-luokat testataan injektoimalla niiden olioihin repositorio-oliot FakeUserRepository
ja FakeCharacterRepository
-luokista, jotka simuloivat aitojen repositoriluokkien toimintaa muistissa tietokannan käsittelyn sijaan. Näin yksikkötestit tarkistavat pelkästään sovelluslogiikan toimintaa. Sovelluslogiikka-luokkien testit löytyvät luokista TestUserService sekä TestCharacterService.
Integraatiotestit muistuttavat sovelluslogiikan yksikkötestejä, mutta näissä testeissä sovelluslogiikka käyttää oikeita repositorioluokkia (ks. ylemmät linkit kohdassa Repositorioluokat), jolloin saamme tarkistettua sovelluslogiikan ja repositorio-luokkien yhteistoiminnan. Integraatiotestien luokat ovat TestUserIntegration sekä TestCharacterIntegration.
Käyttöliittymäkerrosta lukuunottamatta sovelluksen testihaaraumakattavuus on 98%:
Testauksen ulkopuolelle jäi eri ympäristömuuttujien asetus sekä tietokannan alustus komentoriviltä.
Sovellus on järjestelmätestattu manuaalisesti.
Sovellus on ladattu ja testattu käyttöohjeen ohjaamalla tavalla sekä macOS-, Linux- että Windows-ympäristössä. Huomaa, että Windows-ympäristössä poetry komennot eivät toimi, vaan komennot täytyy suorittaa manuaalisesti. Nämä alkuperäiset komennot löytyvät tiedostosta tasks.py.
Sovellusta on testattu sekä olemassaolevien tietokantatiedostojen kanssa että ilman, jolloin sovellus luo sen itse.
Kaikki määrittelydokumentissa ja käyttöohjeen määrittelemät toiminnallisuudet on käyty läpi. Myös virhetilanteita on kokeiltu esimerkiksi täyttämällä hahmon muokkauskentät välilyönneillä, tyhjillä arvoilla tai numeraalisten kenttien tapauksessa kirjaimilla.
- Pylint ilmoittaa puutteesta, että Character-entiteetti käyttää liian monta argumenttia. En keksinyt tapaa vähentää tätä, sillä hahmo säilöö nämä tiedot tietokannan sarakkeisiin, eikä niitä voi loogisesti laskea muuten.