You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

Introduktion

Formål

Formålet med dette dokument er at beskrive de tests, som er udviklet og afviklet forud for release af EAS.

Følgende typer af test indgår i udviklingsarbejdet:

  • Unittests, der verificerer, at de individuelle enheder i kildekoden virker efter hensigten, herunder måling af code coverage.

  • Integrationstest: Integrationstests, der afvikles op imod kørende EAS service til verifikation af funktionalitet og deployment.

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, Cucumber og Maven.

UnitTests

Der findes UnitTests af centrale enheder (klasser) i EAS. Testene er implementeret vha JUnit.

Testene udføres som en integreret del af byg af komponenten, men kan også afvikles separat med kommandoen

mvn test

Ønsker man en detaljeret rapport af testudførslerne, kan dette gøres via Surefire:

mvn surefire-report:report

Herefter vil der findes testrapporter for de individuelle moduler under:

target/reports/surefire.html

Testcoverage

Jacoco anvendes til at lave en testrapport med coverage for hele applikationen. Rapporten generes ved at køre

mvn verify

Herefter vil Jacoco rapporten være at finde under:

coverage/target/site/jacoco-aggregate/index.html

Integrationstests

Integrationstestene for EAS er implementeret vha Cucumber og JUnit i modulet integrationtests, og er beregnet til afvikling mod en kørende udgave af EAS.

Testene er implementeret i "EasIT.java", og er inddelt i en feature for hver EAS-operation. I hver af disse features benyttes forskellige nøgler afhængigt af, hvilke data der findes på det konkrete miljø.

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.

Afvikling

Afvikling af Integrationstests aktiveres via Maven med følgende kommando:

mvn verify -pl integrationtest -Pintegration-test

Dette vil afvikle integrationstestene mod lokalt kørende EAS-services.

Testene kan også afvikles mod NSP's test miljøer ved at sætte argumentet environment. F.eks.

mvn verify -pl integrationtest -Pintegration-test -Denvironment=local

Der er følgende muligheder for test miljøer:


localTests afvikles mod et lokalt docker-compose setup (denne vælges automatisk hvis environment argumentet ikke sættes).
test1Endnu ikke mulig
test2Endnu ikke mulig


Bemærk. hvis det ønskes at afvikle integrationstests mod services køres i lokalt docker-compose setup, skal services først startes (se Guide til udviklere).

Afhængigt af valget af "environment" skal der findes konfiguration til afvikling af testen - hvis der fx vælges environment=local skal der findes en local.properties. Indholdet af filen beskrives i tabellen nedenfor:


PropertyBeskrivelseEksempel-værdi
EAS:

eas.endpoint.urlThe URL on which the EAS service is listeninghttps://localhost:8079/eas/fhir
eas.client.cert.folderThe folder containing the necessary certificates../compose/configuration/certs/
eas.client.keystoreKeystore containing client key + certificatecaller.test.p12
eas.client.keystore.passwordPassword for keystorechangeit
eas.client.private.key.passwordPassword for private keychangeit
eas.client.truststoreTruststore for EAS clienttest_ca.jks
eas.client.truststore.passwordPassword for truststorechangeit
Keycloak:

keycloak.endpoint.urlThe Keycloak URL for requesting JWTshttps://TODO.test1.nsp.dk:8080/ehmi-auth/realms/ehmi/protocol/openid-connect/token
keycloak.client.cert.folderThe folder containing the necessary certificates../compose/configuration/certs/
keycloak.client.keystoreKeystore containing client key + certificatecaller.test.p12
keycloak.client.keystore.passwordPassword for keystorechangeit
keycloak.client.private.key.passwordPassword for private keychangeit
keycloak.client.truststoreTruststore for EAS clienttest_ca.jks
keycloak.client.truststore.passwordPassword for truststorechangeit

Testdata:



cpr.invalidA CPR that does not exist on the NSP environment0908720090
cpr.valid.no.sorA CPR whose "yder" is not mapped to a SOR ID in SORES1808764667
cpr.valid.with.doctorAn existing CPR with own doctor mapped to SOR ID in SORES0908720091
yder.validA valid "yder" number077704
yder.invalidAn invalid "yder" number077703
sorid.validA SOR ID that exists in EER1254731000016003
sorid.invalidA SOR ID that does not exist in EER42


  • No labels