2011-08-25 3 views

답변

0

"마침내 예외가 필요합니다!"라는 생각을했습니다. 제약 조건과 제약 조건 위반을 테스트하고 검증하는 또 다른 방법이 있습니다. 발리 데이터 유효성 검사기 = Validation.buildDefaultValidatorFactory(). getValidator(); 설정> constraintViolations = validator.validateValue (Course.class, "name", null); assertEquals (1, constraintViolations.size()); -

2

이 특별한 예외는 밝혀진 버그를 수정하여 처리해야합니다. 즉, 코드가 null 속성을 가진 개체를 만들려고하는데이 속성이 null이 아니어도됩니다. 즉, 코드가이 속성을 채우는 것을 잊었거나 사용자가 입력 한 데이터의 유효성 검사를 올바르게 처리하지 못했음을 의미합니다.

+0

사실, 의도적으로 null로 속성을 설정하려고하는 것은 테스트 코드입니다. 나는 다른 코멘트에서 아래에 더 많은 이해를위한 몇 가지 코드를 게시하고 있습니다. 도와주세요. –

+0

이것은 비즈니스 규칙이 실제로 작동하고 있다는 것을 의미하지는 않습니다. db 처리 코드는 NOT NULL 값이 NULL로 설정된 경우 잘못된 것이 있음을 올바르게 인식합니다. 이 문제가 생산 과정에서 발생했을 경우 사용자가 같은 페이지로 리다이렉트하거나 NULL이 없어야한다고 – LordDoskias

+0

이것은 제약 조건 위반을 만드는 테스트 클래스 코드의 일부입니다. \t \t course = courseService.findById (new Long (5)); \t \t course.setDescription (null); \t \t \t \t /* * \t \t 엔티티에게 \t \t */ \t \t courseService.mergeCourse (코스) 지속; \t \t /* \t * 어설 \t */\t assertNotNull (. "코스 설명 :. presisted되지 않았을해야한다", courseService.findById (새 롱 (5))으로 getDescription()); 그리고 이것은 엔티티로 주어진 설명 특성이다 \t @NotNull \t @Column (columnDefinition = "TEXT") \t 개인 문자열 정보; 이 주장은 실패합니다. –