Spring MockMvc

时间:2018-02-21 09:15:46

标签: java spring spring-mvc

我正在为Spring编写REST API集成测试,我需要传递自定义标头。目前我正在做这样的事情:

mockMvc.perform(get("/something")
    .header("header", header.toHeaderString())

其中object是包含我想在头中传递的所有数据的自定义对象,而toHeaderString是一种将此数据序列化为特定格式的String的方法。当我忘记调用HeaderString时,这是a)非常丑陋和b)频繁的烦人错误来源。

有没有办法告诉Spring自动进行此转换?像这样:

mockMvc.perform(get("/something")
    .header("header", header)

转换另一种方式(在Controller中)是自动完成的,因为该类有一个接受单个String参数的构造函数。

@RequestMapping(value = "/something", method = RequestMethod.GET)
public Collection<Something> getSomething(
    @RequestHeader("header") MyHeader header)

编辑:

所以我发现如果我在MyHeader.toString中进行转换它会起作用。但是,这样,我失去了以人类可读形式记录对象的能力。如果我可以保留toString用于调试目的,那将是很好的,所以我将问题保持打开状态。

0 个答案:

没有答案