사용자 도구

사이트 도구


java:equals_verifier

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:equals_verifier [2014/07/08 16:42]
kwon37xi [Lombok equals hashCode 테스트]
java:equals_verifier [2018/05/02 10:50] (현재)
kwon37xi [Groovy Spock]
줄 3: 줄 3:
   * Java 클래스의 ''equals''와 ''hashCode'' 메소드는 일반적으로 자동 생성하는 방식을 사용하는데 Java Code Coverage에서 매우 많은 커버리지를 깎아먹는 부분이다. 이에 ''equals''와 ''hashCode''에 대해 자동 테스트를 하여 커버리지를 높여주는 역할을 한다.   * Java 클래스의 ''equals''와 ''hashCode'' 메소드는 일반적으로 자동 생성하는 방식을 사용하는데 Java Code Coverage에서 매우 많은 커버리지를 깎아먹는 부분이다. 이에 ''equals''와 ''hashCode''에 대해 자동 테스트를 하여 커버리지를 높여주는 역할을 한다.
   * 이름은 ''EqualsVerifier''이지만 ''hashCode''까지 처리한다.   * 이름은 ''EqualsVerifier''이지만 ''hashCode''까지 처리한다.
 +  * 테스트를 실행했는데 오류가 발생하면 http://www.jqno.nl/equalsverifier/errormessages 에 가서 오류 메시지를 찾아서 해결책을 보고 따라하면 해결이 된다.
 +
  
 ===== Lombok equals hashCode 테스트 ===== ===== Lombok equals hashCode 테스트 =====
줄 20: 줄 22:
 } }
 </code> </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.1404805334.txt.gz · 마지막으로 수정됨: 2014/07/08 16:42 저자 kwon37xi