When using annotation based validation for a form bean, what is the best practice for unit-testing those beans in order to ensure that correct validations annotations are sp
You can test it easily.
Let's say you are using Hibernate Validator. More or less, it should be something like this
import javax.validation.ConstraintViolation;
import junit.framework.Assert;
import org.hibernate.validator.HibernateValidator;
import org.junit.Before;
import org.junit.Test;
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
private LocalValidatorFactoryBean localValidatorFactory;
@Before
public void setup() {
localValidatorFactory = new LocalValidatorFactoryBean();
localValidatorFactory.setProviderClass(HibernateValidator.class);
localValidatorFactory.afterPropertiesSet();
}
@Test
public void testNullValidationError() {
final MyForm myForm= new MyForm ();
myForm.setName(null);
Set> constraintViolations = localValidatorFactory.validate(myForm);
Assert.assertTrue("Your error message", constraintViolations.notNull == null);
}