Spring REST模拟上下文路径

乔治·海勒

我尝试使用以下代码段设置spring rest模拟的上下文路径:

private MockMvc mockMvc;

@Before
public void setUp() {
    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
            .apply(documentationConfiguration(this.restDocumentation))
            .alwaysDo(document("{method-name}/{step}/",
                    preprocessRequest(prettyPrint()),
                    preprocessResponse(prettyPrint())))
            .build();
}

@Test
public void index() throws Exception {
    this.mockMvc.perform(get("/").contextPath("/api").accept(MediaTypes.HAL_JSON))
            .andExpect(status().isOk())
            .andExpect(jsonPath("_links.business-cases", is(notNullValue())));
}

但是我收到以下错误:

java.lang.IllegalArgumentException: requestURI [/] does not start with contextPath [/api]

怎么了? 是否可以在代码的单个位置(例如直接在构建器中)指定contextPath?

编辑

这里的控制器

@RestController
@RequestMapping(value = "/business-case", produces = MediaType.APPLICATION_JSON_VALUE)
public class BusinessCaseController {
    private static final Logger LOG = LoggerFactory.getLogger(BusinessCaseController.class);

    private final BusinessCaseService businessCaseService;

    @Autowired
    public BusinessCaseController(BusinessCaseService businessCaseService) {
        this.businessCaseService = businessCaseService;
    }

    @Transactional(rollbackFor = Throwable.class, readOnly = true)
    @RequestMapping(value = "/{businessCaseId}", method = RequestMethod.GET)
    public BusinessCaseDTO getBusinessCase(@PathVariable("businessCaseId") Integer businessCaseId) {
        LOG.info("GET business-case for " + businessCaseId);
        return businessCaseService.findOne(businessCaseId);
    }
}
安迪·威尔金森

您需要在传递到的路径中包括上下文路径get

在问题中显示的情况下,上下文路径为/api并且您想向其发出请求,/因此您需要传递/api/get

@Test
public void index() throws Exception {
    this.mockMvc.perform(get("/api/").contextPath("/api").accept(MediaTypes.HAL_JSON))
            .andExpect(status().isOk())
            .andExpect(jsonPath("_links.business-cases", is(notNullValue())));
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Spring Boot和上下文路径

来自分类Dev

如何在Spring上下文中注入模拟

来自分类Dev

Spring Boot:注入自定义上下文路径

来自分类Dev

Undertow和Tomcat的Spring Boot .war上下文路径

来自分类Dev

Spring Webjars定位器和上下文路径

来自分类Dev

具有上下文路径的Spring Boot静态内容

来自分类Dev

Spring应用程序中的根上下文路径

来自分类Dev

Undertow和Tomcat的Spring Boot .war上下文路径

来自分类Dev

Spring MVC + Thymeleaf-正确的上下文路径处理

来自分类Dev

在Spring Boot中何时使用自定义上下文路径而不是根上下文

来自分类Dev

Spring Security:如何设置一个与上下文路径不同的RememberMe cookie url路径?

来自分类Dev

在Spring上下文中查找* .properties文件的绝对路径

来自分类Dev

在Spring上下文中使用默认路径从系统属性加载属性文件

来自分类Dev

使带有子上下文路径的嵌入式Spring Cloud Config Server

来自分类Dev

如何在Spring Boot jboss / wildfly中设置上下文路径?

来自分类Dev

在Spring MVC中如何在控制器中获取上下文路径

来自分类Dev

在Spring上下文中查找* .properties文件的绝对路径

来自分类Dev

Spring上下文动态变化

来自分类Dev

未加载Spring上下文

来自分类Dev

了解Spring MVC中的上下文

来自分类Dev

用于DelegatingFilterProxy的单独Spring上下文

来自分类Dev

Spring安全上下文,几个用户

来自分类Dev

找不到Spring Application上下文

来自分类Dev

了解Spring MVC中的上下文

来自分类Dev

Spring上下文动态变化

来自分类Dev

Spring Integration多上下文

来自分类Dev

用于DelegatingFilterProxy的单独Spring上下文

来自分类Dev

Spring安全上下文,几个用户

来自分类Dev

Thymeleaf Spring Mail上下文错误

Related 相关文章

热门标签

归档