JUnit - 101

원태연·2022년 5월 30일
0

JUnit

목록 보기
1/5
post-thumbnail

Test코드

메인 코드의 동작이 잘 작동하는지 테스트 할 수 있는 코드로 추가적인 코드를 작성해야 한다는 수고가 있지만, 전체적인 비용을 봤을땐, 굉장히 효율적인 작업이다.

필요성

테스트 코드 없이, 메인 코드를 통해 정상적인 작동을 확인하려면
코딩 -> 서버 동작 -> 데이터 입력 -> 테스트 대상의 메소드 동작을 위한 요청 -> 결과 확인

의 과정이 소요된다. 과정이 많아 시간이 오래걸리고, 실제로 어느 부분에서 오류가 발생하는지 명확하게 알기 어려울 것이다. 복잡하게 엮여있는 메인 코드의 규모가 커지면 커질수록 더 힘든 작업과 비용이 요구된다.

하지만, 테스트 코드를 통해 정상적인 작동을 확인한다면,

코딩 -> 테스트 코드 실행 -> 결과 확인

의 과정이 소요된다. 과정도 확 줄지만, 결과확인에 용이 하다. 특히 각각의 역할을 가진 메서드들을 작은 단위로 쪼개 테스트를 작성한다면, 어느 부분에서 오류가 발생하는지 명확하게 알기 쉬워진다.

그렇다면 어떻게 결과를 확인하는 방법이 좋을까?

단순히 System.out.println()을 통한 결과 확인은 정말 간단한 경우에나 가능하다

작성한 모든 테스트 케이스의 결과를 일일히 확인하며 매번 대조해보는것은 불가능한 일이기 때문이다.

또, 원하는 결과가 나오지 않더라도 실행되며, 정확한 결과를 확인하는데에 더 많은 코드가 필요하게 된다.

이러한 이유로 각각의 언어는 XUnit이라는 프레임워크를 제공하여 테스트의 결과를 보다 쉽게 확인할 수 있다.

JUnit

JUnit이란?

  • JUnit은 자바에서 독립된 단위 테스트 작성을 지원해주는 프레임워크다

    단위 테스트란

    소스 코드의 특정 모듈이 의도된 대로 정확히 동작하는지 검증하는 절차이다.

    모든 메소드에 대한 테스트 케이스를 작성하는 절차를 뜻함.

JUnit5

JUnit Platform + JUnit Jupiter + JUnit Vintage 을 모두 지원하는 JUnit5 버전을 사용한다.

  • JUnit Platform : TestEngine 인터페이스를 가지고 있다. 이 TestEngine을 통해서 테스트를 발견하고 실행하는 역할을 한다.
  • JUnit Jupiter : TestEngine 인터페이스를 구현하는 모듈 중 하나. jupiter-api를 사용하여 JUnit5 버전에서 작성된 테스트를 실행 할 때 사용되는 모듈
  • JUnit Vintage : 기존 JUnit4 버전에서 작성된 테스트를 실행할 때 사용되는 모듈

구조를 간단히 말하자면,

큰 Jar덩어리였던 junit4가 junit5가 되면서 구버전 모듈(Vintage) + 신버전 모듈(Jupiter) + IDEs/Build Tools/Extenston(Platform)으로 나뉘었다

Jar : JAR는 여러개의 자바 클래스 파일과, 클래스들이 이용하는 관련 리소스 및 메타데이터를 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷이다.

일종의 자바 프로젝트 압축 파일이다.

Java 8 이상부터 사용 가능하며, 이전 버전의 JDK로 컴파일된 코드도 테스트할 수 있다.

공식 홈페이지 : https://junit.org/junit5/docs/current/user-guide/

profile
앞으로 넘어지기

0개의 댓글