Skip to content

Generates test for SpringMVC or Spring WebFlux using WebTestClient based on OpenAPI specification.

jbang zw -p io.zenwave360.sdk.plugins.SpringWebTestClientPlugin \
    specFile=src/main/resources/model/openapi.yml \
    apiOverlayFiles=src/main/resources/model/openapi-overlay.yml \
    targetFolder=src/test/java \
    testsPackage=io.zenwave360.example.adapters.web.tests \
    openApiApiPackage=io.zenwave360.example.adapters.web \
    openApiModelPackage=io.zenwave360.example.adapters.web.model \
    openApiModelNameSuffix=DTO \
    groupBy=service

Use apiOverlayFiles to patch the OpenAPI source before dereferencing and allOf merge.

jbang zw -p io.zenwave360.sdk.plugins.SpringWebTestClientPlugin \
    specFile=src/main/resources/model/openapi.yml \
    apiOverlayFiles=src/main/resources/model/openapi-overlay.yml \
    targetFolder=src/test/java \
    testsPackage=io.zenwave360.example.adapters.web.tests \
    groupBy=service

Overlay files are applied in order. This is intended for local files and file-backed classpath: resources.

jbang zw -p io.zenwave360.sdk.plugins.SpringWebTestClientPlugin \
    specFile=src/main/resources/model/openapi.yml \
    targetFolder=src/test/java \
    testsPackage=io.zenwave360.example.adapters.web.tests \
    openApiApiPackage=io.zenwave360.example.adapters.web \
    openApiModelPackage=io.zenwave360.example.adapters.web.model \
    openApiModelNameSuffix=DTO \
    groupBy=businessFlow \
    businessFlowTestName=CustomerCRUDTest \
    operationIds=createCustomer,getCustomer,updateCustomer,deleteCustomer
OptionDescriptionTypeDefaultValues
specFileAPI Specification FileURI
apiOverlayFilesOrdered list of API overlay YAML files applied before dereferencing and allOf merge.List[]
targetFolderTarget folder to generate code to. If left empty, it will print to stdout.File
testsPackagePackage name for generated testsString{{basePackage}}.adapters.web.tests
groupByGenerate test classes grouped byGroupByTypeserviceservice, operation, partial, businessFlow
testSuffixClass name suffix for generated test classesStringIT
operationIdsOpenAPI operationIds to generate code forList[]
requestPayloadTypeWhether to use a JSON string or instantiate a java DTO as request payloadRequestPayloadTypejsonjson, dto
businessFlowTestNameBusiness Flow Test nameString
transactionalAnnotate tests as @Transactionalbooleantrue
transactionalAnnotationClass@Transactional annotation class nameStringorg.springframework.transaction.annotation.Transactional
basePackageApplications base packageString
openApiApiPackageThe package to used by OpenAPI-Generator for generated api objects/classesString
openApiModelPackageThe package to used by OpenAPI-Generator for generated model objects/classesString{{openApiApiPackage}}
openApiModelNamePrefixSets the prefix for model enums and classes used by OpenAPI-GeneratorString
openApiModelNameSuffixSets the suffix for model enums and classes used by OpenAPI-GeneratorString
statusCodesStatus codes to generate code forList[200, 201, 202, 400]
jbang zw -p io.zenwave360.sdk.plugins.SpringWebTestClientPlugin --help