Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SpringBoot @IntegrationTest annotation for testing

Tags:

spring-boot

I am very new to SpringBoot. I need to understand how to write an integration test using SpringBoot. I have seen some examples on the Internet which use the @IntegrationTest annotation whereas some other examples which use the @SpringBootTest annotation.

I am just wondering what is the difference between the two?

Which is the best way of writing an integration test in Spring boot?

like image 274
Revansha Avatar asked Sep 28 '16 05:09

Revansha


2 Answers

The IntegrationTest was deprecated sine spring boot 1.4, so the suggestion is using SpringBootTest after 1.4

Deprecated as of 1.4 in favor of org.springframework.boot.test.context.SpringBootTest with webEnvironment=RANDOM_PORT or webEnvironment=DEFINED_PORT.

like image 100
Liping Huang Avatar answered Feb 18 '23 18:02

Liping Huang


Basic template for writing the integration tests in springboot. the sql group is additional annotation. When ever you want to execute the particular sql queries before and after method run so u can use @SqlGroup annotation.

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MainApplication.class,
            webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@SqlGroup({
    @Sql(executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, 
         scripts = "classpath:beforeTestRun.sql"),
    @Sql(executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, 
         scripts = "classpath:afterTestRun.sql")})

public class CustomerControllerIntTest {}
like image 26
Rahul Baghaniya Avatar answered Feb 18 '23 18:02

Rahul Baghaniya