1. JUnit이란?
자바 프로그래밍 언어용 단위 테스트 프레임워크입니다.
2. 세팅
2-1) build.gradle에 라이브러리 확인
testImplementation 'org.springframework.boot:spring-boot-starter-test'
2-2 ) Test 클래스 생성
테스트 하고자 하는 클래스에서 Generate -> Test.. 클릭 -> Create Test 화면 ok 클릭 ->
test 폴더에 동일한 패키지 구조를 가진 test 클래스가 생성 됨.
given 값으로 when을 생성 했을 때 then의 테스트가 통과 되어야한다.
테스트 진행 중 에러가 발생하면 그 뒤의 테스트는 진행하지 않고 멈춘다.
package com.sparta.springcore.model;
import com.sparta.springcore.dto.ProductRequestDto;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class ProductTest {
@Test
@DisplayName("정상 케이스")
void createProduct_Normal() {
// given
Long userId = 100L;
String title = "오리온 꼬북칩 초코츄러스맛 160g";
String image = "https://shopping-phinf.pstatic.net/main_2416122/24161228524.20200915151118.jpg";
String link = "https://search.shopping.naver.com/gate.nhn?id=24161228524";
int lprice = 2350;
ProductRequestDto requestDto = new ProductRequestDto(
title,
image,
link,
lprice
);
// when
Product product = new Product(requestDto, userId);
// then
assertNull(product.getId());
assertEquals(userId, product.getUserId());
assertEquals(title, product.getTitle());
assertEquals(image, product.getImage());
assertEquals(link, product.getLink());
assertEquals(lprice, product.getLprice());
assertEquals(0, product.getMyprice());
}
}
테스트 정상 작동시 초록색 체크 (InteliJ 기준)
============================================================================================
import org.assertj.core.api.Assertions 사용
A와 B가 같은지 테스트
-> assertThan(A).isEqualTo(B);
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
class MemberServiceTest {
MemberService memberService = new MemberServiceImpl();
@Test
void join() {
//given
Member member = new Member(1L, "memberA", Grade.VIP)
//when
memberService.join(member);
Member findMember = memberService.findMember(1L);
//then
Assertions.assertThat(member).isEqualTo(findMember);
}
@Test
void findMember() {
}
}
'프로그래밍 > SpringBoot' 카테고리의 다른 글
통합 테스트(Integration Test) - 예제) 관심상품 통합 테스트 (0) | 2022.06.06 |
---|---|
Edge 케이스를 고려한 단위 테스트 (0) | 2022.06.06 |
카카오 로그인 구현(2) (0) | 2022.06.03 |
카카오 로그인 구현(1) - 사전 설정 (0) | 2022.06.02 |
접근 불가 페이지 만들기 (0) | 2022.06.02 |