Spring MockMvc 和 @AutoConfigureMockMvc() 在请求中设置 header

标签 spring spring-mvc spring-boot

我正在使用 Spring Boot 并设置了 Spring Security 以使用 token 授权。我的测试设置如下:

@RunWith(SpringRunner.class)
@SpringBootTest(properties = {
})
@AutoConfigureMockMvc()
@EnableAutoConfiguration(exclude = {
})
public class ApplicationTests {
@Test
        public void shouldReturnRepositoryIndex() throws Exception {

            mockMvc.perform(get("/")).andDo(print()).andExpect(status().isOk()).andExpect(
                    jsonPath("$._links.people").exists());
        }
}

我需要get("/")发送 header “X-AUTH: SOMETOKEN”

我怎么做?

最佳答案

.header("X-AUTH" , "SOMETOKEN")应该管用。

这是修改后的 mockMvc 代码:

mockMvc.perform(get("/").header("X-AUTH" , "SOMETOKEN")).andDo(print()).andExpect(status().isOk()).andExpect(
            jsonPath("$._links.people").exists());

输出是:
MockHttpServletRequest:
  HTTP Method = GET
  Request URI = /
   Parameters = {}
      Headers = {X-AUTH=[SOMETOKEN]}

关于Spring MockMvc 和 @AutoConfigureMockMvc() 在请求中设置 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48292127/

相关文章:

java - Spring MVC @PropertySource 所有键/值作为映射

rest - 不要使用 JHipster/Spring Boot 验证 REST 层中的某些字段

java - Hibernate 中的 Longvarchar

java - SpringFramework Boot 在其他 servlet 读取输入流之前读取它

使用 AggregateItemReader 或其他解决方案在阅读器中进行一次 Spring 批量读取多行

java - 有没有办法在java中捕获不同逻辑的相同两个异常?

spring - 将一些堆栈跟踪信息放入自定义 tomcat 错误 500 页面

java - 初始化数组,其中字段注入(inject)@Resource

java - Spring ApplicationContext bean 加载了两次

spring-mvc - 删除后重定向