Formålet med dette dokument er at beskrive de tests, som er udviklet og afviklet forud for release af IDSAS.
Følgende typer af test indgår i udviklingsarbejdet:
Unittests: Unittests tester, at de individuelle/isolerede enheder (klasser) i kildekoden virker som de skal.
Integrationstest: Integrationstests afvikles op imod en kørende IDSAS service til verifikation af funktion og deployment. Herved verificeres det, at de individuelle enheder kan integreres og arbejde sammen i en kørende service.
Dokumentet henvender sig til udviklere og testere.
Læseren forventes at have kendskab til Java software udvikling, herunder unittesting ved anvendelse af JUnit og Maven.
Der findes UnitTests af centrale enheder (klasser) i IDSAS.
Testene er implementeret vha JUnit og kan eksekveres af Mavens standard testplugin SureFire.
Testene udføres som en integreret del af byg af komponenten.
Integrationstestene for IDSAS er implementeret vha Cucumber og JUnit i modulet idsas-integration-tests, og er beregnet til afvikling mod en kørende udgave af IDSAS.
Testene er i praksis inddelt i tre forskellige pakker, hver med deres egen Cucumber "glue"-klasse, som i alle tre tilfælde hedder "IdsasIT.java".
De tre pakker er følgende:
I praksis kan alle tests køre op imod docker-compose-setuppet under development, da denne indeholder både Kafka og database-udgaven af "idsas-registration". Kafka-udgaven af "registration" kører på port 8081 og database-udgaven kører på port 8080. Det er også afspejlet i properties-filerne under "resources".
Integrationstestene tjekker primært om kaldene går igennem, eller giver fejl, alt efter hvad forventningen er i den givne situation. Mere specifik forretningslogik testes igennem unit-testene.
For at køre en bestemt pakke af tests, kan man gøre det manuelt igennem IntelliJ ved at køre selve glue-klasse, fx "src/test/java/dk/nsp/idsas/test/_20240124_legacy/IdsasIT.java". Hver glue-klasse har annoteringer der udpeger den relevante cucumber-specifikation, og property-filerne deles på tværs af alle klasserne.
Afvikling af Integrationstests aktiveres via Maven med følgende kommando:
mvn verify -pl idsas-integration-tests -Pintegration-test |
Dette vil afvikle integrationstestene mod en lokalt kørende IDSAS.
Testene kan også afvilkes mod test miljøerne ved at sætte argumentet environment. F.eks.
mvn verify -pl idsas-integration-tests -Pintegration-test -Denvironment=test1 |
Der er følgende muligheder for test miljøer:
| Miljø | Beskrivelse |
|---|---|
| local | Testen køres mod et lokalt docker-compose setup (denne vælges automatisk hvis environment argumentet ikke sættes). |
| test1 | Testen køres mod service der er deployet på test1. |
| test2 | Testen køres mod service der er deployet på test2. |
Alternativt kan de relevante IDSAS endpoints sættes manuelt med maven properties. Herunder er et eksempel hvor idsas.service.endpoint og idsas.service-lookup.endpoint sættes.
mvn verify -pl idsas-integration-tests -Pintegration-test -Didsas.service.endpoint=http://en-anden-url:8080/idsas \ -Didsas.service-lookup.endpoint=http://en-tredje-url:8080/idsas-lookup |
Hvis man ønsker at køre integrationstesten lokalt mod docker-compose setup, skal denne først startes. Se Guide til udviklere - Afvikling.