EDUCBA

EDUCBA

MENUMENU
  • Explore
    • Lifetime Membership
    • All in One Bundles
    • Fresh Entries
    • Finance
    • Data Science
    • Programming and Dev
    • Excel
    • Marketing
    • HR
    • PDP
    • VFX and Design
    • Project Management
    • Exam Prep
    • All Courses
  • Blog
  • Enterprise
  • Free Courses
  • Login
Home Software Development Software Development Tutorials Spring Tutorial Spring Boot Test Configuration

Spring Boot Test Configuration

Updated April 1, 2023

Spring Boot Test Configuration

Definition of Spring Boot Test Configuration

Spring boot test configuration is useful to test our spring boot application, using test configuration we can test the small part of our application. Spring boot configuration test is making the verification test is easy and fast, so the scope of our testing is narrowed into class methods. Spring boot @TestConfiguration classes are used only on selective test classes which explicitly imported the @import notation.

ADVERTISEMENT
Popular Course in this category
SPRING BOOT Course Bundle - 5 Courses in 1 | 6 Mock Tests

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

Overview of Spring Boot Test Configuration

  • In spring boot testing @TestConfiguration is the specialized form of @configuration which was used to define additional beans or test our spring boot application.
  • In the spring boot application, we can configure spring beans in top of class which was annotated with @TestConfiguration.
  • We need to explicitly register @TestConfiguration class using the project class which contains the test cases.
  • We can use different types of annotation to test the spring boot application.
  • Import annotation is indicating more than one configuration which was used to import the same into our application context file or spring boot context file.
  • We can use @TestConfiguration method to modify the context of the spring boot application during the runtime of the test.
  • We can also use @TestConfiguration method and bean definition. Example is to replace the original bean with fake bean and we can also change the bean configuration to make the bean stable for testing purposes.
  • The @TestConfiguration is an inherited property of @Configuration beans. @configuration is the parent annotation of @TestConfiguration bean.
  • While developing the project we need to add the dependency of the spring boot starter test.
  • The annotation of @TestConfiguration is excluded from component scanning of spring boot.
  • We can also exclude the configuration classes which was annotated by @TestConfiguration from component scanning.
  • We need to explicitly import annotation of @TestConfiguration in every testing when we need to automate them.
  • We can also annotate the @TestConfiguration annotation as @TestComponent.

Two test configuration additional

  • In spring boot basically, there are two ways to include the additional test in test configuration are as follows.

1) @Import annotation
2) Static nested classes

1) @Import annotation –

  • This annotation will indicate one or more configuration classes which was import into our application context file or spring test context file.
  • @Bean annotation is declared in a @TestConfiguration class which was accessed by using injection of @Autowired.
  • @import annotation bean is itself autowired or it will autowired at the time of declaring configuration class.
  • We can declare the @import annotation by using meta-annotation or by using class level.

Example

@TestConfiguration
Public class testconfiguration
{
@Bean
DataSource createDataSource () {
}
}

2) Static nested classes –

  • We can also define test configuration in nested classes inside into class of test. Nested classes are annotated by using @TestConfiguration and @configuration.
  • If the declared class is annotated by using @TestConfiguration it is known as a test class within a nested class. This class is registered automatically we have no need to register it again.

Example

@SpringBootTest (webEnv = webEnv.PORT)
public class testconfiguration
{
@ServerPort
int Port;
@Autowired
DataSource dsource;
@TestConfiguration
static class TestConfiguration {
@Bean
DataSource createDataSource() {
}
}
}

Code Example

Below is the code example of spring boot test configuration are as follows.

1) Create project template using spring initializer and give name to project –

In the below step, we have provided project group name as com. example, artifact name as springboottestconfiguration, project name as springboottestconfiguration, and selected java version as 8.

Group – com.example Artifact name – springboottestconfiguration
Name – springboottestconfiguration Spring boot – 2.6.0
Project – Maven project Description – Project for springboottestconfiguration
Java – 8 Dependencies – spring web, spring native
Package name – com.example.springboottestconfiguration

Spring Boot Test Configuration 22

2) After generating project extract files and open this project by using spring tool suite –

After generating the project by using spring initializer in this step we are extracting the jar file and opening the project by using the spring tool suite.

Spring Boot Test Configuration 23

3) After opening project using spring tool suite check the project and its files –

  • In this step, we are checking all the project template files. We also need to check the maven dependencies and system libraries.

Spring Boot Test Configuration 24

4) Add dependency packages –

  • In this step, we are adding the required dependency to our project.

Code:

<dependency> -- Start of dependency tag.
<groupId>org.springframework.boot</groupId> -- Start and end of groupId tag.
<artifactId>spring-boot-starter-test</artifactId> -- Start and end of artifactId tag.
</dependency> -- End of dependency tag.

Spring Boot Test Configuration 26

5) Configure application. properties file –

  • In this step, we have configuring the application.properties file.

Code:

spring.main.allow-bean-definition-overriding = true

27

6) Test configuration by using static inner class –

In this example, we are using a static inner class to use test configuration. We can say that static inner class is a class-level annotation that allows in the static inner class itself.

Code:

@SpringBootTest
public class testconfiguration
{
@TestConfiguration
public static class ClientConfiguration {
@Bean
public client getWebClient(final Builder build) {
return build.baseUrl ("http://localhost")).build();
}
@Autowired
private DataService dService;
}
}

28

7) Run and test the application –

29

30

Example Project

The below example shows an example project of spring boot test configuration. We are using the template name springboottestconfiguration.

1) Use the @TestConfiguration annotation in our project –

Code:

@TestConfiguration
public class TestConfig
{
@Bean
public HService hService (){
return new Hservice () {
public String getMessage (String stud_name) {
return "Test configuration: "+stud_name;
}
};
}
}

31

2) Import test configuration in class –

Code:

@SpringBootTest
@Import (TestConfig.class)
public class ProcTest {
@Autowired
private ProcTest pTest;
@Test
public void testSayHi () {
String message = ProcTest.studName ("ABC");
System.out.println (message);
Assert.assertEquals(message, "Test configuration: ABC");
}
private static String studName (String string) {
return null;
}
}

32

3) Run and test the application –

run

run 1

Conclusion – Spring Boot Test Configuration

In spring boot there are two ways to include additional test in test configuration first one is @import annotation and the second is static nested classes. It is useful to test our spring boot application, using test configuration we can test a small part of our application.

Recommended Articles

This is a guide to Spring Boot Test Configuration. Here we discuss definition, overviews, Two test configuration additional, examples with code implementation. You may also have a look at the following articles to learn more –

  1. Spring Boot Docker
  2. Spring Boot Advantages
  3. Spring boot logging level
  4. Spring boot filter
ADVERTISEMENT
MICROSOFT POWER BI Course Bundle - 8 Courses in 1
34+ Hours of HD Videos
8 Courses
Verifiable Certificate of Completion
Lifetime Access
4.5
ADVERTISEMENT
CYBER SECURITY & ETHICAL HACKING Course Bundle - 13 Courses in 1 | 3 Mock Tests
64+ Hours of HD Videos
13 Courses
3 Mock Tests & Quizzes
Verifiable Certificate of Completion
Lifetime Access
4.5
ADVERTISEMENT
MICROSOFT AZURE Course Bundle - 15 Courses in 1 | 12 Mock Tests
63+ Hour of HD Videos
15 Courses
12 Mock Tests & Quizzes
Verifiable Certificate of Completion
Lifetime Access
4.5
ADVERTISEMENT
KALI LINUX Course Bundle - 6 Courses in 1
20+ Hours of HD Videos
6 Courses
Verifiable Certificate of Completion
Lifetime Access
4.5
Primary Sidebar
Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Live Classes
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

ISO 10004:2018 & ISO 9001:2015 Certified

© 2023 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you

Let’s Get Started

By signing up, you agree to our Terms of Use and Privacy Policy.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

By continuing above step, you agree to our Terms of Use and Privacy Policy.
*Please provide your correct email id. Login details for this Free course will be emailed to you

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

By signing up, you agree to our Terms of Use and Privacy Policy.

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

Loading . . .
Quiz
Question:

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more

🚀 Extended Cyber Monday Price Drop! All in One Universal Bundle (3700+ Courses) @ 🎁 90% OFF - Ends in ENROLL NOW