【发布时间】:2020-06-25 19:37:55
【问题描述】:
我对弹簧控制器很陌生。我正在尝试为无效参数编写单元测试。我有一个具有@RequestParam("id") @Min(1) long id 的api,在我的单元测试中,我传入了“-1”。这是我的测试:
@Test
public void searchWithInvalidIbId() throws Exception {
mockMvc.perform(get(BASE_URL)
.param(COLUMN_IB_ID, INVALID_IB_ID_VALUE) // = "-1"
.param(COLUMN_TIME_RANGE, TIME_RANGE_VALUE)
.param(COLUMN_TIME_ZONE, TIME_ZONE_VALUE)
.accept(PowerShareMediaType.PSH_DISPATCH_REPORTER_V1_JSON)
.contentType(PowerShareMediaType.PSH_DISPATCH_REPORTER_V1_JSON))
.andExpect(status().isBadRequest());
}
当我运行它时,我得到了
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is javax.validation.ConstraintViolationException: search.arg2: must be greater than or equal to 1
这是有道理的,但我不确定如何测试这是 BadRequest。我尝试了@Test(expected = NestedServletException.class),它通过了,但我认为它不是在检查我想要检查的内容。检查这个的正确方法是什么?
【问题讨论】:
-
你在 ExceptionHandler 中处理
ConstraintViolationException吗? -
我的回答是否解决了您的问题@Jonathon Hagen?如果是这样,您可以将其标记为正确答案。
标签: spring rest unit-testing mockmvc