본문 바로가기

개발 공부

JUnit 기본

  • 필요 라이브러리 : junit, assertj
testImplementation 'org.assertj:assertj-core:3.19.0'
testImplementation 'org.junit.jupiter:junit-jupiter:5.7.1'
  • junit 페턴

given/when/then

import org.junit.jupiter.api.Test;

public class TestExample {
    @Test
    void test(){
        //given

        //when

        //then
    }
}
  1. given(준비): 어떠한 데이터가 준비되었을 때
  2. when(실행): 어떠한 함수를 실행하면
  3. then(검증): 어떠한 결과가 나와야 한다.
  • 예시

<로또 생성기 Java 코드>

import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;

public class LottoNumberGenerator {
    public List<Integer> generate(final int money){
        if(!isValidMoney(money)){
            throw new RuntimeException("올바른 금액이 아닙니다.");
        }
        return generate();
    }
    
    private boolean isValidMoney(final int money) {
        return money == 1000;
    }
    
    private List<Integer> generate(){
        return new Random()
                .ints(1, 45 + 1)
                .distinct()
                .limit(6)
                .boxed()
                .collect(Collectors.toList());
    }
}

<로또 번호 갯수 테스트>

import lottoNumberGenerator.LottoNumberGenerator;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

public class LottoNumberGeneratorTest {
    @DisplayName("로또 번호 갯수 테스트")
    @Test
    void lottoNumberSizeTest(){
        //given
        final LottoNumberGenerator lottoNumberGenerator = new LottoNumberGenerator();
        final int price = 1000;
        
        //when
        
        //then
    }
}

준비가 끝났으면 주어진 금액을 지불하여 로또를 받아야 한다. 이에대한 when 단계의 코드

import lottoNumberGenerator.LottoNumberGenerator;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

import java.util.List;

public class LottoNumberGeneratorTest {
    @DisplayName("로또 번호 갯수 테스트")
    @Test
    void lottoNumberSizeTest(){
        //given
        final LottoNumberGenerator lottoNumberGenerator = new LottoNumberGenerator();
        final int price = 1000;

        //when
        final List<Integer> lottoNumber = lottoNumberGenerator.generate(price);
        
        //then
    }
}

최종적으로 6개의 로또숫자를 받아오는지 검증한다.

 

참고

https://mangkyu.tistory.com/144

'개발 공부' 카테고리의 다른 글

RabbitMQ 작업대기열(Work Queue) Java 2  (0) 2023.06.14
RabbitMQ 작업대기열(Work Queue) Java  (0) 2023.06.13
RabbitMQ Recv Java  (0) 2023.06.13
RabbitMQ Sendding Java  (0) 2023.06.13
RabbitMQ 사용해 보기 Java  (0) 2023.06.13