I have a JUnit test that starts an spring-boot application (in my case, the main class is SpringTestDemoApp
) after the test:
@WebIntegrationTest
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = SpringTestDemoApp.class)
public class SpringTest {
@Test
public void test() {
// Test http://localhost:8080/ (with Selenium)
}
}
Everything works fine using spring-boot 1.3.3.RELEASE
. Nevertheless, the annotation @WebIntegrationTest
and @SpringApplicationConfiguration
have been removed in spring-boot 1.5.2.RELEASE
. I tried to refactor the code to the new version, but I am not able to do it. With the following test, my app is not started before the test and http://localhost:8080 returns 404:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringTestDemoApp.class)
@WebAppConfiguration
public class SpringTest {
@Test
public void test() {
// The same test than before
}
}
How can I refactor my test to make it works in spring-boot 1.5?
Spring Boot automatically configures your application based on the dependencies you have added to the project by using @EnableAutoConfiguration annotation. For example, if MySQL database is on your classpath, but you have not configured any database connection, then Spring Boot auto-configures an in-memory database.
The webEnvironment
option inside @SpringBootTest
is very important. It can take values like NONE
, MOCK
, RANDOM_PORT
, DEFINED_PORT
.
NONE
will only create spring beans and not any mock the servlet environment.
MOCK
will create spring beans and a mock servlet environment.
RANDOM_PORT
will start the actual servlet container on a random port; this can be autowired using the @LocalServerPort
.
DEFINED_PORT
will take the defined port in the properties and start the server with it.
The default is RANDOM_PORT
when you don’t define any webEnvironment
. So the app may be starting at a different port for you.
Try to override it to DEFINED_PORT
, or try to autowire the port number and try to run test on that port.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With