Page History
...
Formålet med dette dokument er at beskrive de tests, som er udviklet og afviklet forud for release af IDSASDDTV.
Følgende typer af test indgår i udviklingsarbejdet:
Unittests: Unittests tester, der verificerer, at de individuelle /isolerede enheder (klasser) i kildekoden virker som de skalefter hensigten, herunder måling af code coverage.
Integrationstest: Integrationstests, der afvikles op imod en kørende IDSAS service DDTV services til verifikation af funktion funktionalitet og deployment. Herved verificeres det, at de individuelle enheder kan integreres og arbejde sammen i en kørende service.
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 IDSASDDTV.
Testene er implementeret vha JUnit og kan eksekveres af Mavens standard testplugin SureFire.
Testene udføres som en integreret del af byg af komponenten., men kan også afvikles separat med kommandoen
| Code Block |
|---|
mvn test |
Integrationstests
Integrationstestene for IDSAS DDTV er implementeret vha Cucumber og JUnit i modulet idsasddtv-integration-testsintegrationtests, og er beregnet til afvikling mod en kørende udgave af IDSASDDTV.
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:
implementeret i "DdtvIT.java", og er inddelt i 3 forskellige kategorier:
- Citizen. Test af IDWS kald mod DDTV citizen servicen.
- Dentist. Test af DGWS kald mod DDTV dentist servicen.
- WSWL. Test af de de udstillede WSDL- og XSD-filer, som udstilles af DDTV's Citizen- og Dentist-services
- _20230601. Test af den oprindelige snitflade med Kafka.
- _20240124. Test af den nye snitflade med afdelingssløring, også med Kafka.
- _20240124_legacy. Test af seneste snitflade med afdelingssløring, kun "registration" og kun med database-konfiguration (ingen Kafka).
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 rummer alle de services. der skal kaldes, kørende på hhv. port 8080, 8081 og 8082. Dette er afspejlet i local.properties-filen 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:
| Code Block |
|---|
mvn verify -pl idsas-integration-testsintegrationtest -Pintegration-test |
Dette vil afvikle integrationstestene mod en lokalt kørende IDSASDDTV-services.
Testene kan også afvilkes afvikles mod NSP's test miljøerne miljøer ved at sætte argumentet argumentet environment. F.eks.
| Code Block |
|---|
mvn verify -pl idsas-integration-testsintegrationtest -Pintegration-test -Denvironment=test1 |
Der er følgende muligheder for test miljøer:
| Miljø | Beskrivelse |
|---|---|
| local | Testen køres Tests afvikles mod et lokalt docker-compose setup (denne vælges automatisk hvis hvis environment argumentet ikke sættes). |
| test1 | Testen køres mod service Tests afvikles mod services, der er deployet på test1. |
| test2 | Testen køres mod service Tests afvikles mod services, 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.
| Code Block | ||
|---|---|---|
| ||
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 Bemærk. hvis det ønskes at afvikle integrationstests mod services køres i lokalt docker-compose setup, skal denne services først startes. Se Se Guide til udviklere - Afvikling.