Demo app for:
- Java, Maven, Spring Boot, Data Jpa, REST, Freemarker Web UI, Junit 5, Selenium Webdriver
- Layers of abstraction in software testing
From the root directory of the project, the following commands can be issued.
By convention, Maven recognizes all test classes named *Test
as unit test classes.
mvn test
Also, Maven recognizes all test classes named *IT
as integration test classes.
# just the integration tests
mvn integration-test
# unit + integration tests (more common)
mvn verify
We keep this test example out of the Maven build cycle by using an unconventional suffix of E2E:
mvn test -D test=ApplicationE2E
Selenium Webdriver + WebDriverManager is used here to exercise the UI test.
The code example requires Firefox to be locally installed. The specific browser implementation can be easily replaced with Chrome or any other supported browser. For more info on supported drivers, see https://github.com/bonigarcia/webdrivermanager-examples.
Again, we keep this high level test out of the loop by using another suffix:
mvn test -D test=ApplicationUI
Exploratory test the application!
mvn clean package spring-boot:repackage \
&& java -jar target/health-services.jar
- @hamvocke
- @alisterscott
- @bonigarcia
- @jqno