- 필요 라이브러리 : 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
}
}
- given(준비): 어떠한 데이터가 준비되었을 때
- when(실행): 어떠한 함수를 실행하면
- 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개의 로또숫자를 받아오는지 검증한다.
참고
'개발 공부' 카테고리의 다른 글
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 |