Project about how can product acceptance testing (PAT) and system acceptance testing (SAT) look like.
For this testing all sources like ( database, sap, services ... ) are mocked. That is the only difference here in constrast to System acceptance testing.
For this testing all sources like ( database, sap, services ... ) are real (not mocked) to test real interactions between application and them.
- Spring Boot as main Java application technology
- Cucumber as testing tool
- Maven surefire plugin as plugin that runs separately all Product acceptance tests, separately all System acceptance tests and separately all any other tests.
- Tests are running separately (PAT, SAT, other tests). Is good to have them not in application build lyfecycle because PAT and SAT can take a while and for application build are more imporant other test more close to development like unit tests ...
- With maven surefire and maven profiles is achieved separation of test runs ( PAT , SAT, otjer tests ).
- SAT and PAT doesnt share code base. That is the reason why there are many similarities. But design is therefore very flexible.
- There is one entry point for PAT (see CucumberPatTestEntryPoint.java) one entry point for SAT (see CucumberSatTestEntryPoint.java).
- There can be 1 or more CucumberSteps for PAT (see CucumberPatSteps.java) and SAT (see CucumberSatSteps.java).
- There are one PAT (see PatConfig.java) and one SAT (see SatConfig.java) config but can be more if you like (Spring).
- There is one feature file for PAT (see pat.feature) and one for SAT (see sat.feature) but can be of cource more.
All SAT test separately.
mvn test -P SAT
All PAT test separately.
mvn test -P PAT
All other test with application except PAT nd SAT.
mvn package