특정 문자열에 대한 최대 절전 크기 제약 조건을 테스트 중이며 각 크기 제약 조건을 테스트하기 위해 별도의 함수를 만드는 대신 하나의 단위 테스트 메서드에서 모든 반환 코드를 확인하고 싶습니다. 오류 반환.여러 제약 조건 위반 반환 메시지 테스트
@Size(max = 10, message = "String a is too big")
private String a;
@Size(max = 20, message = "String b is too big")
private String b;
그리고 내 테스트 클래스에서 나는 현재이처럼 그들을 테스트입니다 : 그래서 나는 같이 내 자바 클래스의 일부 문자열이
@Test
public void aIsTooLongTest(){
...code to set length of a as a string > 10 and b < 20
Set<ConstraintViolation<SomeObj>> constraintViolations = validator.validate(instanceOfSomeObj);
assertEquals(2, constraintViolations.size());
assertEquals("String a is too big", constraintViolations.iterator().next().getMessage());
}
난을 할 때이 잘 작동하지만 이런 테스트는 2 가지 별도의 메소드를 작성해야한다 (하나는 너무 크고 하나는 b가 너무 큰 경우). 이 방법을 a와 b가 너무 큰 한 방법에 결합하고 올바른 오류 메시지가 모두 반환되는지 확인하려고합니다. 문제는 특정 오류 반환 메시지에 액세스하는 방법을 찾지 못하는 것입니다. 예를 들어 코드
constraintViolations.iterator().next().getMessage()
은 특정 순서로 오류 메시지를 반환하지 않습니다. 이 문제를 피하고 오류 코드를 테스트 할 수있는 방법이 있습니까? 아니면 각 사례를 별도의 방법으로 분리해야합니까?
및 assertEquals에 접근한다. –