Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

[1] Annotering som anger att WireMock ska startas upp för aktuell testklass.
[2] Pekar ut var WireMock hittar resurser (mappningar etc.).För varje test-metod kommer metodnamnet att byggas på denna sökväg, t.ex. .../MyFirstAppTest/test1_successful/....
[3] Pekar ut vilken klass som ska användas för att ladda context:en för testet. Kommer oftast att vara tjänstens applikationsklass, d.v.s. den klass som innehåller en main-metod och som används för att starta tjänsten.
[4] Test-basklassen AbstractAppTest innehåller funktionalitet för att bl.a. enkelt kunna sätta upp ett testfall, mot en förväntad endpoint ([5]) med en viss HTTP-metod ([6]), ett request ([7]), en förväntad HTTP-status ([8]) och ett förväntat svar ([9]).

(info) Rekommenderat är att placera app-tester under src/integration-test/java och deras resurser under src/integration-test/resources.

(info) Porten som WireMock-servern startas på exponeras som wiremock.server.port, och man bör då peka om eventuella URL:er för t.ex. integrationer att gå mot den lokala datorn och den porten. t.ex. integration.messaging.base-url=http://localhost:${wiremock.server.port}/...

(info) JsonUnit används av ramverket för att hantera både request-matchning och response-verifiering.

Här kommer exempel på hur man kan använda detta:

mapping.json (wiremock request matchning)

Code Block
{
  "request": {
    ...
    "bodyPatterns" : [ {
      "equalToJson" : "{ \"someAttribute\": \"${json-unit.any-string}\"  }",
      "ignoreArrayOrder" : true,
      "ignoreExtraElements" : true
    } ]
    ...
  },
  ...
}

response.json (response-verifiering)

Code Block
{
	"id": "${json-unit.any-number}", 			// matches: "234"
	"subject": "${json-unit.regex}[A-Z]+\"}", 	// matches: "A SUBJECT"
	"createdBy": "createdBy1",
	"modifiedBy": "Jack the updater",
	"created": "2022-01-01T12:14:32.234+01:00",
	"modified": "${json-unit.any-string}"		// matches: "anything"
}


ResourceLoaderExtension

Ramverket tillhandahåller en JUnit-extension för att enkelt kunna läsa in resurser i sina tester:

...