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