자바 스터디

4주차 선택 과제 0. JUnit 5 학습

삶은겨란 2022. 5. 19. 20:27
더보기

과제 0. JUnit 5 학습하세요.

  • 인텔리J, 이클립스, VS Code에서 JUnit 5로 테스트 코드 작성하는 방법에 익숙해 질 것.
  • 이미 JUnit 알고 계신분들은 다른 것 아무거나!
  • 더 자바, 테스트 강의도 있으니 참고하세요~

 

과제 1. live-study 대시 보드를 만드는 코드를 작성하세요.

  • 깃헙 이슈 1번부터 18번까지 댓글을 순회하며 댓글을 남긴 사용자를 체크 할 것.
  • 참여율을 계산하세요. 총 18회에 중에 몇 %를 참여했는지 소숫점 두자리가지 보여줄 것.
  • Github 자바 라이브러리를 사용하면 편리합니다.
  • 깃헙 API를 익명으로 호출하는데 제한이 있기 때문에 본인의 깃헙 프로젝트에 이슈를 만들고 테스트를 하시면 더 자주 테스트할 수 있습니다.

 

과제 2. LinkedList를 구현하세요.

  • LinkedList에 대해 공부하세요.
  • 정수를 저장하는 ListNode 클래스를 구현하세요.
  • ListNode add(ListNode head, ListNode nodeToAdd, int position)를 구현하세요.
  • ListNode remove(ListNode head, int positionToRemove)를 구현하세요.
  • boolean contains(ListNode head, ListNode nodeTocheck)를 구현하세요.

 

과제 3. Stack을 구현하세요.

  • int 배열을 사용해서 정수를 저장하는 Stack을 구현하세요.
  • void push(int data)를 구현하세요.
  • int pop()을 구현하세요.

 

과제 4. 앞서 만든 ListNode를 사용해서 Stack을 구현하세요.

  • ListNode head를 가지고 있는 ListNodeStack 클래스를 구현하세요.
  • void push(int data)를 구현하세요.
  • int pop()을 구현하세요.

 

과제 5. Queue를 구현하세요.

  • 배열을 사용해서 한번
  • ListNode를 사용해서 한번.

과제 0. JUnit 5

 

공식문서: https://junit.org/junit5/docs/current/user-guide/

 

(1) JUnit이란?

자바 프로그래밍용 단위 테스트를 할 수 있는 프레임워크. 테스팅 프레임워크를 xUnit이라 하는데 다양한 언어가 존재.

 

JUnit5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

JUnit Platform JVM에서 시작하기 위한 기반 제공
테스트 프레임워크를 개발하기 위한 API 정의
JUnit Jupiter JUnit5에서 테스트 작성을 위한 새로운 프로그래밍 모델과 확장 모델 조합
JUnit Vintage 플랫폼에서 JUnit3, JUnit4기반한 테스트 코드가 실행될 수 있는 TeseEngine을 제공

 

버전 지원

- 자바8 이상

- 스프링 부트 2.2 이후 기본 제공

 

(2) 어노테이션(Annotations)

어노테이션이란 사전적 의미로는 주석.

자바에서 어노테이션이란 코드 사이에 주석처럼 쓰여 특별한 의미, 기능을 수행하도록 하는 기술을 말한다.

 

JUNIT Jupiter는 테스트를 구성하고 프레임워크를 확장하기 위해 다음과 같은 어노테이션을 제공한다.

Annotation 설명
@Test 테스트 메소드임을 선언.
@ParameterizedTest 매개변수를 받는 테스트.
@RepeatedTest 반복되는 테스트
@TestFactory 동적 테스트
@TestTemplate 테스트 케이스 템플릿
@TestClassOrder 테스트 클래스 실행 순서 구성
@TestMethodOrder 테스트 메소드 실행 순서 구성
@TestInstance 테스트 클래스의 생명주기 설정
@DisplayName 테스트 클래스 또는 테스트 방법에 대한 사용자 정의 이름을 선언
@DisplayNameGeneration 테스트 클래스에 대한 사용자 정의 이름 생성기를 선언
@BeforeEach 각 테스트 메소드가 실행되기 전에 실행되는 메소드
@AfterEach 각 테스트 메소드가 실행된 후에 실행되는 메소드
@BeforeAll 테스트 시작 전 한 번만 실행
@AfterAll 테스트 끝난 후 한 번만 실행
@Nested 중첩 테스트 클래스
@Tag 필터링 테스트를 위한 태그를 선언
@Disabled 테스트 메소드 비활성화
@Timeout 시간 초과시 실패
@ExtendWith 확장 등록
@RegisterExtension 필드를 통해 확장 등록
@TempDir 임시 디렉토리 제공

 

 

 

 

'자바 스터디' 카테고리의 다른 글

6주차 과제: 상속  (0) 2022.05.30
5주차 과제: 클래스  (0) 2022.05.20
4주차 과제: 제어문  (0) 2022.05.19
3주차 과제: 연산자  (0) 2022.05.18
2주차 과제: 자바 데이터 타입, 변수 그리고 배열  (0) 2022.05.17