Javaでのバリデーション 〜Bean Validation篇〜
- 2. なにをやっているのか
● Twitter @eiryu
○ http://eiryu.com
● 仕事
○ インフラ・情シス
● バッググラウンド
○ Webアプリケーションエンジニア
■ Java
● Spring Framework
■ Groovy
■ JavaScript
■ PostgreSQL
- 9. Bean Validationの沿革
2009 Bean Validation 1.0(JSR 303)
2013 Bean Validation 1.1(JSR 349)
JSRとは
Java Specification Requestsの略。日本語だと、
Java仕様要望。個人的にはJava版のRFCと捉え
ている。
- 11. Constraintsの例
● @NotNull
○ nullでないこと
● @Pattern
○ 指定した正規表現にマッチすること
● @Size
○ 文字列等のサイズが指定した範囲であること
● @AssertTrue
○ trueであること
● @Future
○ JVMの現在日時より未来であること
packageはjavax.validation.constraints
- 22. コード例 単体テスト
(特定プロパティのみのバリデーション)
private Validator validator =
Validation.buildDefaultValidatorFactory().getValidator();
@Test
public void validateName_正常系() {
UserForm userForm = new UserForm();
userForm.setName("eiryu");
Set<ConstraintViolation<UserForm>> violations =
validator.validateProperty(userForm, "name");
LOGGER.info("violations: " + violations);
assertThat(violations, hasSize(0));
}
- 23. コード例 単体テスト
(JavaBeans全体のバリデーション)
private Validator validator =
Validation.buildDefaultValidatorFactory().getValidator();
@Test
public void validate_正常系() {
UserForm userForm = new UserForm();
userForm.setName("eiryu");
userForm.setSex(Sex.MALE);
userForm.setPregnant(false);
Set<ConstraintViolation<UserForm>> violations =
validator.validate(userForm);
LOGGER.info("violations: " + violations);
assertThat(violations, hasSize(0));
}