2
为我创造了这个MovieForm类:有没有办法单元测试验证注释而不必使用glassfish的依赖关系?
public class MovieForm {
private String movieName;
@Min(1)
@Max(31)
@NotNull
private Integer maxNumberOfTickets;
}
我创造了这个单元测试,测试我的形式我的验证注解。
public class MovieFormTest {
private static ValidatorFactory validatorFactory;
private static Validator validator;
@BeforeClass
public static void createValidator() {
validatorFactory = Validation.buildDefaultValidatorFactory();
validator = validatorFactory.getValidator();
}
@AfterClass
public static void close() {
validatorFactory.close();
}
@Test
public void form_test() {
MovieForm form = new MovieForm();
form.setMaxNumberOfTickets(null);
Set<ConstraintViolation<MovieForm>> violations = validator.validate(form);
Assert.assertFalse(violations.isEmpty());
ConstraintViolation<MovieForm> violation = violations.iterator().next();
Assert.assertEquals("may not be null", violation.getMessage());
form.setMaxNumberOfTickets(32);
violations = validator.validate(form);
Assert.assertFalse(violations.isEmpty());
violation = violations.iterator().next();
Assert.assertEquals("must be less than or equal to 31", violation.getMessage());
form.setMaxNumberOfTickets(0);
violations = validator.validate(form);
Assert.assertFalse(violations.isEmpty());
violation = violations.iterator().next();
Assert.assertEquals("must be greater than or equal to 1", violation.getMessage());
form.setMaxNumberOfTickets(15);
violations = validator.validate(form);
Assert.assertTrue(violations.isEmpty());
}
但此测试时,我在POM
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.el</artifactId>
<version>3.0.1-b08</version>
</dependency>
否则我得到添加此GlassFish的依赖只能一个HV000183:无法初始化 'javax.el.ExpressionFactory'。错误。但是我的同事不希望我使用这种依赖关系,因为我们正在使用WebSphere,所以我的问题是:有没有办法让这个单元测试工作而无需使用该依赖关系?
您可以将' test '添加到您的依赖项中。 –
alayor