내용으로 건너뛰기
권남
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
추적:
java:equals_verifier
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== Equals Verifier ====== * http://www.jqno.nl/equalsverifier/ * Java 클래스의 ''equals''와 ''hashCode'' 메소드는 일반적으로 자동 생성하는 방식을 사용하는데 Java Code Coverage에서 매우 많은 커버리지를 깎아먹는 부분이다. 이에 ''equals''와 ''hashCode''에 대해 자동 테스트를 하여 커버리지를 높여주는 역할을 한다. * 이름은 ''EqualsVerifier''이지만 ''hashCode''까지 처리한다. * 테스트를 실행했는데 오류가 발생하면 http://www.jqno.nl/equalsverifier/errormessages 에 가서 오류 메시지를 찾아서 해결책을 보고 따라하면 해결이 된다. ===== Lombok equals hashCode 테스트 ===== * ''EqualsVerifierExample''이라는 Lombok ''@Data'' 애노테이션이 적용된 클래스가 있을 때<code java> @Test public void equalsAndHashCodeContract() throws Exception { class SubEqualsVerifierExample extends EqualsVerifierExample { @Override public boolean canEqual(Object obj) { return false; } } EqualsVerifier.forClass(EqualsVerifierExample.class) .suppress(Warning.NULL_FIELDS, Warning.NONFINAL_FIELDS) .withRedefinedSubclass(SubEqualsVerifierExample.class) .verify(); } </code> * 커버리지가 낮게 나오면 ''suppress'' 부분을 제거하고 해본다. ===== IntelliJ Live Template ===== ==== java ==== <code java> class Sub$CLASS$ extends $CLASS$ { @Override public boolean canEqual(Object obj) { return false; } } EqualsVerifier.forClass($CLASS$.class) .suppress(Warning.NULL_FIELDS, Warning.NONFINAL_FIELDS) .withRedefinedSubclass(Sub$CLASS$.class) .verify(); </code> * Applicable in Java: statement * Reformat according to style : check * Use static import if possible : check * Short FQ names : check ==== Groovy Spock ==== <code groovy> static class Sub$CLASS$ extends $CLASS$ { @Override boolean canEqual(Object obj) { return false } } def "equalsAndHashCode verify"() { expect: EqualsVerifier.forClass($CLASS$.class) .suppress(nl.jqno.equalsverifier.Warning.NONFINAL_FIELDS, nl.jqno.equalsverifier.Warning.ALL_FIELDS_SHOULD_BE_USED) .withRedefinedSubclass(Sub$CLASS$.class) .withRedefinedSuperclass() .verify() } </code> * Applicable in Spock Specification * Reformat according to style : check * Use static import if possible : check * Short FQ names : check
java/equals_verifier.txt
· 마지막으로 수정됨: 2018/05/02 10:50 저자
kwon37xi
문서 도구
문서 보기
이전 판
역링크
맨 위로