사용자 도구

사이트 도구


java:equals_verifier

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:equals_verifier [2016/08/17 17:09]
kwon37xi [IntelliJ Live Template]
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 테스트 =====
줄 45: 줄 47:
 static class Sub$CLASS$ extends $CLASS$ { static class Sub$CLASS$ extends $CLASS$ {
  @Override  @Override
- public boolean canEqual(Object obj) { + boolean canEqual(Object obj) { 
- return false;+ return false
  }  }
 } }
  
 def "equalsAndHashCode verify"() { def "equalsAndHashCode verify"() {
- def verifier = EqualsVerifier.forClass($CLASS$.class)+ expect: 
 + EqualsVerifier.forClass($CLASS$.class)
  .suppress(nl.jqno.equalsverifier.Warning.NONFINAL_FIELDS, nl.jqno.equalsverifier.Warning.ALL_FIELDS_SHOULD_BE_USED)  .suppress(nl.jqno.equalsverifier.Warning.NONFINAL_FIELDS, nl.jqno.equalsverifier.Warning.ALL_FIELDS_SHOULD_BE_USED)
  .withRedefinedSubclass(Sub$CLASS$.class)  .withRedefinedSubclass(Sub$CLASS$.class)
  .withRedefinedSuperclass()  .withRedefinedSuperclass()
- + .verify()
- when: +
- verifier.verify()+
-  +
- then: +
- assert true+
 } }
 </code> </code>
java/equals_verifier.1471423172.txt.gz · 마지막으로 수정됨: 2016/08/17 17:09 저자 kwon37xi