【发布时间】:2017-05-01 19:53:58
【问题描述】:
我有一个测试类,我正在测试一个带有例如注释的域模型。 @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 中的 Resource Bundle 中提取默认消息。我的路径如下所示:
hibernate-validator-5.3.5.Final.jar
- org
- hibernate
- validator
...
ResourceBundle 'Validation Messages'
在此资源包中支持多种语言(英语、德语、法语……)
示例
德语中的@NotNull 违规消息
javax.validation.constraints.NotNull.message = darf nicht null sein
@NotNull 违规信息英文
javax.validation.constraints.NotNull.message = may not be null
问题:
在测试时,如何强制 Hibernate Validator 从资源包中为违规消息选择特定语言?现在,我收到了英文违规信息。但是,在另一台机器上德语。
【问题讨论】:
标签: java hibernate junit hibernate-validator