사용자 도구

사이트 도구


java:equals_verifier

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:equals_verifier [2015/10/28 10:30]
kwon37xi
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 테스트 =====
줄 23: 줄 25:
  
 ===== IntelliJ Live Template ===== ===== IntelliJ Live Template =====
 +==== java ====
 <code java> <code java>
 class Sub$CLASS$ extends $CLASS$ { class Sub$CLASS$ extends $CLASS$ {
줄 31: 줄 34:
 } }
 EqualsVerifier.forClass($CLASS$.class) EqualsVerifier.forClass($CLASS$.class)
- .suppress(Warning.NONFINAL_FIELDS)+ .suppress(Warning.NULL_FIELDS, Warning.NONFINAL_FIELDS)
  .withRedefinedSubclass(Sub$CLASS$.class)  .withRedefinedSubclass(Sub$CLASS$.class)
  .verify();  .verify();
 </code> </code>
   * Applicable in Java: statement   * 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   * Reformat according to style : check
   * Use static import if possible : check   * Use static import if possible : check
   * Short FQ names : check   * Short FQ names : check
java/equals_verifier.1445997624.txt.gz · 마지막으로 수정됨: 2015/10/28 10:30 저자 kwon37xi