Dette dokument beskriver en testvejledning for sikrede indlæseren. Det forudsættes at projektet er bygget og installeret, og med denne vejledning kan man således afvikle "integrations"- og performancetests og derved kontrollere robustheden.
Sikrede indlæseren benytter i vid udstrækning docker til test, for at kunne teste så vidt muligt med de rigtige afhængigheder.
Det overordnede setup er beskrevet i NSP Continuous Integration & Delivery, og det er herved muligt at starte en specifik Sikrede indlæser med lokalt kørende database samt stamdatakopiregisterservice (SKRS); således at hele flowet kan afprøves lokalt (TBD?).
Der anvendes unittests i Sikrede indlæseren ved brug af JUnit.
En af unit testene "SikredeRouteBuilderTest" tester hele ruten, med undtagelse af den indledende ftp del. Den er lidt speciel i det, der benyttes Mockito Spy's for at kunne teste Camel ruterne og deres fremdrift. Her benyttes en in memory database.
Unittests kan køres ved at eksekvere
|
Efter afvikling af unit-tests genereres en testrapport med Maven-plugin’et JaCoCo. Rapporten kan ses ved at åbne følgende fil i en browser sikrede-testreport/target/site/jacoco-aggregate/index.html.
Rapporten dækker selve Sikrede indlæseren. Codecoverage skal minimum være 80% jf NSP husregler. Der henvises til JaCoCo testrapporten for yderligere information vedr. coverage.
Pr. 22. april 2022 er coverage 87%:
Unit testen "SikredeRouteBuilderTest" udfører en slags integrationstest, da den indlæser en fil og tjekker det resultat, der kommer ud af det.
Derudover kan man udføre en manuel test af det komplete flow fra ft folder til indlæsning i database ud fra følgende opskrift:
Sikrede indlæseren indeholder ikke en automatiseret testsuite beregnet til performancetest. Det anbefales dog at der udføres en manuel performancetest i forbindelse med udvikling, med Sikrede filer af omtrent samme størrelse og kompleksitet som de rigtige indlæsningsfiler.
En sådan performancetest er ment til at afdække eventuelle flaskehalse, som kan blive optimeret før release, samt også give en idé til hvor lang tid Sikrede indlæseren vil skulle bruge for at indlæse de typiske filer der modtages.