Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

5주차 - JUnit 5 기초 #44

Open
4 tasks
hou27 opened this issue Jan 23, 2023 · 2 comments
Open
4 tasks

5주차 - JUnit 5 기초 #44

hou27 opened this issue Jan 23, 2023 · 2 comments
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@hou27
Copy link
Member

hou27 commented Jan 23, 2023

⭐ Chapter 5. JUnit 5 기초

JUnit 5 모듈 구성, 애노테이션과 메서드들과 라이프 사이클 등을 이해하고 테스트 코드를 더 능숙하게 작성할 수 있도록 한다.

  • JUnit 5에 대해 알아보고, 숙지하기
  • Chap 5의 내용을 개인 기술 블로그에 정리한 후 자신의 issue에 comment로 링크 남기기
  • 문제 만들고, Core Member에게 제출하기(스터디 전날까지 부탁드려요!)

  • 모든 과정을 마친 후 pull request 올리기
@hou27
Copy link
Member Author

hou27 commented Jan 30, 2023

📚 Chap 5 문제 📚

정리본

빈칸 채우기

Q ) 테스트에서 사용할 임시 파일을 생성, 테스트 메소드 사용할 객체 생성 등 테스트를 실행하는데 필요한 준비 작업 할 때 사용하는 어노테이션은 ______ 이다.

Q ) 각 테스트 메서드는 서로 _____ 으로 동작해야 한다.

n 중 택 1

Q ) 익셉션 발생 유무 검증 테스트 코드 작성 시, ( fail() / assertThrows() ) 메서드를 이용하는 것이 명시적이다.

O / X 퀴즈

Q ) JUnit Vintage 가 없어도 JUnit 5를 사용하는데 문제는 없다 (O, X)

Q ) BeforeAll 애노테이션은 정적 메서드를, AfterAll 애노테이션은 동적 메서드를 구성하는데 사용된다. (O, X)

Q ) @test 애노테이션을 붙인 메서드는 private 이면 안 된다. (O, X)

실습 문제

Q ) 아래의 테스트 클래스를 실행했을 때, 콘솔에 출력되는 결과는 무엇일까요?

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

public class GdscTest {
    public GdscTest() {
        System.out.println("GDSC");
    }

    @BeforeEach
    void start() {
        System.out.print("명지대 ");
    }

    @Test
    void tdd() {
        System.out.print("TDD");
    }

    @Test
    void algorithm() {
        System.out.print("Algorithm");
    }

    @AfterEach
    void finish() {
        System.out.println("스터디");
    }
}

정답

A ) @beforeeach

A ) 독립적

A ) assertThrows()

A ) O

A ) X

A ) O

A ) Untitled

Chap 5 전체 문제

<김정호>

Q. JUnit Vintage 가 없어도 JUnit 5를 사용하는데 문제는 없다

A. O

JUnit Vintage는 하위 호환을 위해 필요한 요소로, 없다해도 JUnit 5를 사용하는데 문제는 없다.

<한규범>

BeforeAll 애노테이션은 정적 메서드 AfterAll 애노테이션은 동적 메서드를 구성하는데 사용된다. (O/X)

답 : X (둘 다 정적 메서드에 사용)

<장채은>

테스트에서 사용할 임시 파일을 생성, 테스트 메소드 사용할 객체 생성 등 테스트를 실행하는데 필요한 준비 작업 할 때 사용하는 어노테이션은 ______ 이다.

답 : @beforeeach

<박소정>

💡 1. @test 애노테이션을 붙인 메서드는 private 이면 안 된다. (O, X) 2. 익셉션 발생 유무 검증 테스트 코드 작성 시, ( fail() / assertThrows() ) 메서드를 이용하는 것이 명시적이다. 3. 아래의 테스트 클래스를 실행했을 때, 콘솔에 출력되는 결과는 무엇일까요?
// 3번 문제
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

public class GdscTest {
    public GdscTest() {
        System.out.println("GDSC");
    }

    @BeforeEach
    void start() {
        System.out.print("명지대 ");
    }

    @Test
    void tdd() {
        System.out.print("TDD");
    }

    @Test
    void algorithm() {
        System.out.print("Algorithm");
    }

    @AfterEach
    void finish() {
        System.out.println("스터디");
    }
}
    1. O
    2. assertThrows()
      fail() 메서드는 테스트를 실패 처리하는 메서드로, 익셉션이 발생하는 특정 지점에 해당 메서드를 넣어 테스트 코드를 작성해야하지만, assertThrows() 메서드는 발생한 익셉션을 return 해주기 때문에 보다 명시적인 테스트 코드를 작성할 수 있다.

    Untitled

    JUnit 테스트 순서

    1. 테스트 메서드를 포함한 객체 생성
    2. (존재하면) @beforeeach 애노테이션이 붙은 메서드 실행
    3. @test 애노테이션이 붙은 메서드 실행
    4. (존재하면) @AfterEach 애노테이션이 붙은 세서드 실행

<김연지>

rladuswl

@hou27
Copy link
Member Author

hou27 commented Jan 30, 2023

[TDD] 4. JUnit 5 기초

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants