模拟MVC javax.validation测试

时间:2014-11-24 13:43:58

标签: validation unit-testing spring-mvc mockito

我想模仿我的验证进行测试。

尺寸验证不会在我的测试中运行。 id的最大大小为40个字符,当我使用42个长id进行测试时,我等待异常。

MyObject.java

@NotNull
@Size(min = 1, max = 40)
private String id;

MyTest.java:

@Autowired
private Validator validator; // javax.validation.Validator

@Before
public void setUp() {
    mockMvc = MockMvcBuilders.standaloneSetup(MyController).build();
}

@Test
public void Test() throws Exception {
    myObject.setId(StringUtils.repeat("k", 42);
    mockMvc.perform(post(MY_URL)
                .contentType(MediaType.APPLICATION_JSON)
                .content(mapper.writeValueAsString(myObject)))
                .andExpect(status().isBadRequest())
                .andExpect(content().contentType(APPLICATION_JSON_WITH_UTF8));
}

我已经嘲笑了所有必要的服务。这些是XML文件,如下所示:

<bean id="mockValidator" class="org.mockito.Mockito" factory-method="mock">
        <constructor-arg value="javax.validation.Validator"/>
</bean>

但我收到了这条消息:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NumberFormatException: For input string: "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"

从用户界面来看,一切正常。

0 个答案:

没有答案