I want to unit test a RESTful interface written with Apache CXF.
I use a ServletContext to load some resources, so I have:
@Context
private ServletContext servletContext;
If I deploy this on Glassfish, the ServletContext is injected and it works like expected. But I don't know how to inject the ServletContext in my service class, so that I can test it with a JUnit test.
I use Spring 3.0, JUnit 4, CXF 2.2.3 and Maven.
Spring Boot provides a @SpringBootTest annotation, which can be used as an alternative to the standard spring-test @ContextConfiguration annotation when you need Spring Boot features. The annotation works by creating the ApplicationContext used in your tests through SpringApplication .
We do this using JUnit's @RunWith annotation. We also annotate our test class with Spring's @ContextConfiguration annotation without specifying any attributes.
In your unit test, you are probably going to want to create an instance of a MockServletContext.
You can then pass this instance to your service object through a setter method.
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