spring-projects / spring-projects/spring-data-rest

Autowiring MockMvc with @WebMvcTest [DATAREST-1194]

Open
#1,559 3 comments 0 reactions 1 assignee View on GitHub

@odrotbohm is already working on this.

Since Dec 31, 2020.

type: bug
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.