Hibernate ツールによって生成される一連のエンティティ クラスがあります。すべてに次のような @Column 注釈があります。
@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;
}
自動生成されたエンティティ クラスを変更する必要があるため、注釈を追加しないことを好みます。最初に生成された @Column アノテーションで JUnit テストを動作させるにはどうすればよいですか? ありがとう!
私の JUnit テスト (@Column だけでは機能しませんが、追加の @NotNull および @Size では機能します):
public class 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());
}
}