Indhold

Introduktion

Formål

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:

Læsevejledning

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.

UnitTests

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.

Integrationstests

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

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
localTesten køres mod et lokalt docker-compose setup (denne vælges automatisk hvis environment argumentet ikke sættes).
test1Testen køres mod service der er deployet på test1.
test2Testen 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.