spring-projects / spring-projects/spring-data-rest
Autowiring MockMvc with @WebMvcTest [DATAREST-1194]
@odrotbohm is already working on this.
Since Dec 31, 2020.
- Dominant language
- Java
- Stars
- 958
- Forks
- 568
- PR merge metrics
- No merged PRs in 30d
Description
Jonathan Kupcho opened DATAREST-1194 and commented
I noticed when using @WebMvcTest, an @Autowired MockMvc doesn't include the Data REST paths. For example:
@WebMvcTest
@RunWith(SpringRunner.class)
public class ResourceTest {
@Autowired
private MockMvc mockMvc; // this injects, but you can't call Data REST endpoints
You can get around this by doing the normal @SpringBootTest and @RunWith(SpringRunner.class) then adding the @AutoConfigureMockMvc, like so:
@SpringBootTest
@RunWith(SpringRunner.class)
@AutoConfigureMockMvc
public class ResourceTest {
@Autowired
private MockMvc mockMvc; // this injects, and you can call Data REST endpoints
This seemed strange to me due to @WebMvcTest including @AutoConfiguerMockMvc. I'm not sure if this is by design, or a context loading issue. I've included my associated StackOverflow post, and some sample code in the comments.
Thanks!
Affects: 2.6.10 (Ingalls SR10)
Reference URL: https://stackoverflow.com/questions/48589893/autowire-mockmvc-spring-data-rest/48626397
1 votes, 2 watchers
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.