ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Cannot resolve symbol 'Assert' assertThat 에러 해결하기
    Server/Spring ErrorLog 2020. 1. 13. 20:09

    1. 기대한 바

    TDD (Test Driven Development : 테스트 주도 개발)을 하기 위해 Test코드를 작성하였습니다.

    Test코드를 작성 중 입력값의 검증 또는 예외상황을 디버깅하기 위한 용도로 assertThat를 사용하려 하였습니다.

     

    2. 발생한 에러

    그러나, 기대와 달리 junt4 junt5 모두 assertThat 에러에 직면했습니다.

    Cannot resolve symbol 'Assert' 

     

     

    3. 해결과정

    -Clean Project - Rebuild Project

    를 통해 순차적으로 빌드를 초기화 하고 재정의 하는 방법을 사용했지만

    => 저의 경우 해결되지 않았습니다.

     

    -Invalidate Caches/Restart 

    캐시를 무효화하고, 스튜디오를 재시작해줍니다. 

    => 저의 경우 이것도 해결되지 않았습니다.

     

     

     

    수많은 검색을 통해 junt4 junt5 각각에서  assertThat 사용시 에러 해결 방법을 찾을 수 있었습니다.

     

    4. 해결방법

     

    방법1) junit5 사용시 해결방법

     

    원인)

    junit5 사용시 org.junit.jupiter.api.Assertions 클래스에서는 

    junit4의 org.junit.Assert 클래스에서 허용하는 Hamcrest를 허용하는 메소드와 같은 메소드를 제공하지 않기 때문이었습니다.

     

    해결방법)

    junit5의 org.junit.jupiter.api.Assertions 에서 assertThat을 사용하기 위해서는

    import static org.hamcrest.MatcherAssert.assertThat; 을 사용해야합니다.

     

     

    방법2) junit4 사용시 해결방법

    jar 파일 import하면 됩니다. 

    maven일 경우에는 대안1로 해결

    gradle일 경우에는 대안2로 해결

    위의 방법으로 해결이 안될 경우에는 직접 import하는 대안3으로 해결하면 됩니다.

     

    마지막으로 꼭 !! 새로 추가된  Gradle을 적용시키기 위해

    Gradle - Reimport All Gradle Project (재시작 이모티콘)을 클릭해주세요.

    이를 통해 새로 추가된 gradle을 import시켜 사용할 수 있습니다.

     

    반응형
Designed by Tistory.