2012-02-08 50 views
1

如何为自定义spring验证器实现类编写单元测试用例。例如为定制spring验证器类编写junit

公共类RegistrationValidator实现Validator。

只是想知道各种方法。春天是新的,所以探索所有的选择。

感谢, 小号

回答

3

创建一个错误对象, 创建验证器的一个实例,

调用yourValidator(TESTDATA,错误)

检查错误在您预期的方式修改,依赖于testData

@Test 
public void testValidateWithUserWithoutLogin() { 
    User u = new User(); //your domain object, for example a user with "login=null" 

    Errors errors = new BeanPropertyBindingResult(u, "u"); 

    MyValidator validator = newValidator(); 

    validator.validate(p, errors); // 'validator' under test 

    assertTrue(errors.hasErrors()); 
    assertNotNull(errors.getFieldError("login")); 
} 

顺便说一句:你应该看看JSR 303-Bean验证,它也支持Spring 3.0。但是在大多数用例中使用(更少的代码)是easyer。

+0

非常感谢:)我能够用这个例子写出junit类 – challenge 2012-02-09 04:47:16

+0

它应该如何在这里使用组验证? – jarandaf 2013-07-11 12:43:03

+0

@jaranda:这个问题和答案是关于Spring Validator('org.springframework.validation.Validator')而不是about('javax.validation.Validator')。 Spring Validator没有Group概念。 – Ralph 2013-07-11 14:13:47