我有一组实体类,它们是由Hibernate工具生成的。都有@列注释,如:
@Column(name = "CNTR_DESCRIPTION", nullable = false, length = 5)
public String getDescription() {
return this.description;
}
我想编写一个JUnit测试来验证我对数据库的输入,但JUnit验证只在添加以下内容时有效:
@NotNull
@Size(max = 5)
@Column(name = "CNTR_DESCRIPTION", nullable = false, length = 5)
public String getDescription() {
return this.description;
}
我不希望添加任何注释,因为这样我需要更改自动生成的实体类。如何让JUnit测试使用第一个生成的@列注释?谢谢
我的JUnit测试(不适用于仅@列,但适用于额外的@NotNull和@size):
公共类CountryEntityTest{私有静态验证器验证器;
@BeforeClass
public static void setUp() {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
validator = factory.getValidator();
}
@Test
public void countryDescriptionIsNull() {
CountryEntity country = new CountryEntity();
country.setDescription(null);
Set<ConstraintViolation<CountryEntity>> constraintViolations = validator.validate( country );
assertEquals( 1, constraintViolations.size() );
assertEquals( "may not be null", constraintViolations.iterator().next().getMessage() );
}
@Test
public void countryDescriptionSize() {
CountryEntity country = new CountryEntity();
country.setDescription("To long");
Set<ConstraintViolation<CountryEntity>> constraintViolations = validator.validate( country );
assertEquals( 1, constraintViolations.size() );
assertEquals( "size must be between 0 and 5", constraintViolations.iterator().next().getMessage());
}
}
我相信@列中的约束并不是为了进行验证。它们用于生成DDL。因此,您必须添加Hibernate验证器注释来实现您的目标。
参考这篇文章。
我需要测试验证注释,但看起来它们不起作用。我不确定JUnit是否也是正确的。目前,测试将通过,但您可以看到指定的电子邮件地址是错误的。 JUnit 待测试类别
我有一个使用javax注释的jax-rs项目(
问题内容: 我想对用Apache CXF编写的RESTful接口进行单元测试。 我使用ServletContext来加载一些资源,所以我有: 如果我将其部署在Glassfish上,则会注入ServletContext,并且它会按预期工作。但是我不知道如何将ServletContext注入我的服务类中,以便可以使用JUnit测试对其进行测试。 我使用Spring 3.0,JUnit 4,CXF 2.
问题内容: 如何使用休眠注释来验证枚举成员字段?以下内容不起作用: 问题答案: 请注意,您还可以创建一个验证器来检查String是否为枚举的一部分。 这很好,因为您不会丢失“错误值”的信息。您会收到类似的消息 值“ someBadUserType”不是有效的用户类型。有效的UserType值是:PERSON,COMPANY 编辑 对于那些想要非番石榴版本的人,应该使用类似以下的功能: 并要自定义错
我是java新手,我正在编写一个ATM程序,用户可以输入三次pin码,如果他们输入的pin码不正确,他们的卡就会被阻塞。我曾尝试为以下代码编写Junit测试,但似乎无法理解。我有两门课,分别是AtmPin和AtmTester。AtmTester是主类所在的位置。 AtmPin.java AtmTester.java
问题内容: 如何使用hibernate注释来验证枚举成员字段?以下内容不起作用: 问题答案: 请注意,您还可以创建一个验证器来检查String是否为枚举的一部分。 这很好,因为您不会丢失“错误值”的信息。您会收到类似的消息 值“ someBadUserType”不是有效的用户类型。有效的UserType值为:PERSON,COMPANY 编辑 对于那些想要非番石榴版本的人,它应该可以使用类似以下的