Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Ændret forekomst af "IDSAS" til "DDTV"
Navitabs
rootDin digitale tandlægevælger (DDTV) - Leverancebeskrivelse
includeroottrue


Indhold

Table of Contents

Introduktion

Formål

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