我编写了一个带有端点的控制器类,该端点接受标头作为其请求的一部分
@RestController
@RequestMapping("<mapping-path>")
public class MyController {
...
@GetMapping("<path-to-the-endpoint>")
public MyObject getMyObject(@RequestHeader("headerName") String headerName) {
//do something with the header here
}
...
}
端点工作正常,但是当提供具有空值的标头时,我想测试其行为。我还想对getMyObject
方法进行编码,以使其避免将null值传递到标头中,并返回一条警告,指出标头字段不能为空。我尝试使用在端点上带有MockMvc
get()
的集成测试来对此进行测试,但是如果我将空值赋给标头作为该get请求的一部分,则测试将失败,因为它显示“ values不能为空”。是否可以在此处使用JSR-303验证方法?即@Valid
和@NotNull
?
答案 0 :(得分:0)
我认为参数化的请求标头应该对您有用。
尝试这样声明您的方法。
@GetMapping("<path-to-the-endpoint>")
public MyObject getMyObject(@RequestHeader(value="headerName") String headerName) {
//do something with the header here
}
要对此进行测试,可以在MockMvc中添加标题。
post("/your end point").header("headerName", "userId")