ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [애플리케이션을 테스트하는 다양한 방법] JUnit 소개와 시작
    개발/Test 2020. 12. 28. 03:39

     

    백기선님 인프런 강의 더 자바, 애플리케이션을 테스트하는 다양한 방법 정리
    연습 코드

    진행중 발생한 문제

    자바 버전 관련 에러 - Error:java: invalid source release: 11 해결

    JUnit5 소개

    Junit4는 자체가 하나의 덩어리 jar로 디펜더쉴로 들어오고, junit4가 다른 라이브러리 참조한다.
    Junit5는 JUnit5 자체가 여러 모듈화되었다. 플랫폼 위에 5의 세부모듈인 Jupiter, Vintage를 올리는 형태다.
    그 중 JUnit Platform은 JUnit으로 작성한 테스트코드를 실행시켜주는 런처를 제공한다.
    런처를 통해 콘솔, 메인 메소드, 인텔리제이같은 툴에서도 자바로 써진 테스트코드를 실행할 수 있다.


    인텔리제이에서 테스트 코드를 main 메서드 없이 작성해도 실행한다.
    개발 툴이 JUnit Platform을 사용해서 클래스에 들어있는 테스트 어노테이션이 붙은 메서드를 실행해주기 때문이다.


    Jupiter는 Junit5 구현체, Vintage는 JUnit3와 4를 지원하는 테스트 엔진 구현체이다.

    JUnit5 시작하기

    우선 스프링부트를 설치한다. https://goddaehee.tistory.com/238 참고

    junit5 실행하는 간단한 방법을 보자.
    스프링부트 프로젝트를 만든다. 2.2+ 버전의 스프링부트 프로젝트는 기본으로 JUnit5 의존성이 추가된다.

    기본으로 생성되는 스프링부트 클래스를 삭제하고 새로운 클래스와 테스트 클래스를 생성해서 실습한다.

    테스트 클래스를 생성하는 명령어는 cmd+shift+t
    또는 shift를 더블 클릭하고 Java Declaration: Create Test

    JUnit5에서는 테스트가 public일 필요 없다.

    리플렉션을 사용해서라고 하는데, 리플렉션이 뭔지는 더자바-코드를 조작하는.. 강의 참고 (또는 찾아보자)

     

    어노테이션

    @Test

    • 해당 메소드 안에있는 내용을 테스트한다.

    @BeforeAll, @AfterAll

    • 테스트클래스 안에 모든 테스트 실행하기 전에(또는 후에) 한번만 호출이 된다.
    • 반드시 static 메서드를 사용해야한다.
    • 접근제어자로 private은 안되고 default는 된다.
    • 리턴타입 반드시 void여야하고, 메소드 이름은 상관없다.

    @BeforeEach, @AfterEach

    • 모든 테스트에 대해 하나의 테스트를 실행할 때마다, 각각 실행하기 이전(또는 이후)에 한번씩 실행.
    • static일 필요 없다.

    @Disabled

    • 해당 테스트를 수행하지 않는다.
    • 깨진 테스트가 있다면 고쳐야겠지만 필요한 경우도 있다.
      • 예를들어 더이상 관리되지 않는 코드인데 소스가 정리가 안되서 테스트코드를 남겨둔 경우
      • 나는 아직 경험이 없어서 잘 이해가 안된다.

    댓글

Designed by Tistory.