Spring Boot is becoming an increasingly popular preconfigured Spring Framework. TestNG is also a very popular testing framework. Together Spring Boot and TestNG is a really powerful combination if you need to create a Test Automation Framework in Java.
In this post we’re going to see the minimal required code to get started with Spring Boot and TestNG.
This example can be considered as a start point for creating the Test Automation Framework if you choose Java, TestNG, Spring Boot and Maven as your tech stack.
Spring Boot and TestNG Maven dependencies
To make Spring Boot and TestNG work together you have to setup your
pom.xml you need to set spring-boot-starter-parent as a
At the moment the current version of Spring Boot is 2.0.1.RELEASE.
Also you need to include 2 Spring Boot starters: spring-boot-starter, spring-boot-starter-test.
Finaly you should add TestNG as a dependency.
Spring Boot application class with main method
Just create that TestNGWithSpringApplication class with SpringBootApplication annotation in your highest level main (not test) package and forget about it.
AbstractTestNGSpringContextTests. Spring Boot + TestNG test class
The TestNG test class that contains your test methods. To make TestNG test class work with Spring Boot you should extend AbstractTestNGSpringContextTests and add @SpringBootTest annotation to the TestNG test class.
Now you can use @Autowire, @Value or any other features that Spring Boot gives you. You’re now able to inject already predefined Spring Boot beans or your own beans that you might want to create.
And the last. I usually extract all common methods, variables and constans into a separate class. In this case you can move Spring Boot and TestNG related class level annotations into that class like this:
Then your test class will look much better without these scary Spring Boot and TestNG things like SpringBootTest, AbstractTestNGSpringContextTests, TestNGWithSpringApplication.
Spring Boot + TestNG Github Gists:
- Spring Boot and TestNG Maven dependencies
- Spring Boot application class with main method
- TestNG test class with Spring Boot
You may also find these posts interesting: