我需要测试 验证注释,但看起来它们不起作用。我不确定 JUnit 是否也正确。目前,测试将通过,但如您所见,指定的电子邮件地址是错误的。
J单元
public static void testContactSuccess() {
Contact contact = new Contact();
contact.setEmail("Jackyahoo.com");
contact.setName("Jack");
System.err.println(contact);
}
待测类
public class Contact {
@NotNull
@Size(min = 1, max = 10)
String name;
@NotNull
@Pattern(regexp="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\."
+"[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@"
+"(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?",
message="{invalid.email}")
String email;
@Digits(fraction = 0, integer = 10)
@Size(min = 10, max = 10)
String phone;
getters and setters
}
原文由 Jack 发布,翻译遵循 CC BY-SA 4.0 许可协议
另一个答案 说“注释本身不做任何事情,您需要使用验证器来处理对象”是正确的,但是,答案缺少关于如何使用验证器实例进行操作的工作说明,这对我来说是我真正想要的。
Hibernate-validator 是此类验证器的参考实现。你可以像这样干净利落地使用它:
这假设您有验证器实现和 junit 作为依赖项。
使用 Maven pom 的依赖示例: