You can read Part I and Part II
here and
here.
Spring Boot provides a good support for unit and integration testing. I wanted to take an advantage of that.
First I added dependency for
spring-boot-starter-test in my
pom.xml, removed dependencies for
jUnit,
Mockito and
Hamcrest and ran the tests.
Things were not going as smooth as I hoped.
I was using
mockMVC which was wired to my
WebConfig class (via
ContextConfiguration). But that class is no longer needed as Spring Boot takes care of everything. After some digging, adding
@SpringApplicationConfiguration(classes = MockApp.class) worked.
Running unit tests was very useful: it turned out that when removing
WebConfig I removed important configuration:
useRegisteredSuffixPatternMatch was set to
true, which allowed rest requests with domain names in them to be processed correctly and prevented Spring from incorrectly interpreting
.com as file extension.
However simply adding this configuration back did not work. I found
several blogs regarding the same issue. In the end the solution was simple, I added back
WebConfig which extends
WebMvcConfigurerAdapter with overridden
configurePathMatch method
, but removed
@ComponentScan from it.