我有一个测试类,我正在测试一个域模型,该模型用例如注释@NotNull
在我的测试课中,我首先得到验证器
private static Validator validator;
@BeforeClass
public static void setup() {
validator = Validation.buildDefaultValidatorFactory().getValidator();
}
后来我有一个 JUnit 测试,我正在测试域模型(假设是一个人)
Set<ConstraintViolation<Person>> violations = validator.validate( aPerson );
比方说,我想检索我所做的第一条违规消息:
String violationMessage = violations.iterator().next().getMessage()
我尚未在 @NotNull 注释上设置任何自定义违规消息。因此 hibernate 验证器将从中提取默认消息资源包它位于 hibernate-validator-jar 中。我的路径如下所示:
hibernate-validator-5.3.5.Final.jar
- org
- hibernate
- validator
...
ResourceBundle 'Validation Messages'
在此资源包中,支持相当多的语言(英语、德语、法语……)
Example
德语@NotNull 违规消息
javax.validation.constraints.NotNull.message = darf nicht null sein
@NotNull 违规消息英文
javax.validation.constraints.NotNull.message = may not be null
问题:
当我进行测试时,如何强制 Hibernate Validator 从资源包中为违规消息选择特定语言?现在,我收到了英语违规消息。然而,在另一台德国机器上。