seong
Junit이란? 메서드 테스트 해보기 본문
Junit이란?
프로그램을 개발하면 작성된 모든 메서드에 대한 테스트 케이스를 만들고 의도대로 잘 동작하는지 테스트를 해야한다.
프로그램을 작은 단위, 하나의 메서드로 나누어 검사를 하게 된다.
Junit은 Test를 조금 더 쉽게 도와주는 유닛 테스트 프레임 워크이다.
Junit에서 주로 사용되는 메서드
assertArrayEquals(a, b) | 배열 a, b가 일치하는지 확인 |
assertEquals(a, b) | 객체 a,b가 일치하는지 확인 |
assertSame(a, b) | 객체 a,b가 같은 객체 인지 확인 |
assertTrue(a) | a조건의 결과가 참인지 확인 |
assertNotNull(a) | 객체 a가 null이 아닌지 확인 |
Junit 기본 어노테이션
@Test | 테스트 모듈 만들어줌. (자주사용) |
@DisplayName | 테스트 클래스,메서드의 사용자 이름 정의 |
@ExtendWith | 사용자가 정의한 확장명을 등록 |
@BeforeEach | 테스트 메서드 전에 실행됨을 나타낸다. |
@AfterEach | 테스트 메서드 후에 실행됨을 나타낸다. |
@BeforeAll | 현재 클래스의 모든 테스트 메서드 전에 실행됨을 나타낸다. |
@AfterAll | 현재 클래스의 모든 테스트 메서드 후에 실행됨을 나타낸다. |
@Disable | 테스트 클래스 또는 메서드를 비활성화 |
실습
먼저 MyBatis Spring Boot Starter Test 를 자신의 Mybatis버전과 맞게 설치
Gradle에 복사
Junit으로 테스트해볼 프로젝트는 미리 만들어 놓았다.
https://github.com/seong9566/firstapp
1. ProductDaoTest.java - 테스트 코드 작성
package site.metacoding.firstapp.domain.product;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
import org.mybatis.spring.boot.test.autoconfigure.MybatisTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.web.WebAppConfiguration;
//SpringBootTest 모든것을 다 메모리에 띄움
//Vscode에서 import 자동 입력 키 : alt + shift + o
@SpringBootTest
public class ProductDaoTest {
// 단위 테스트는 생성자 주입이 안된다.
// 외부에서 주입할때 빈 생성자만 주입해준다.-> 생성자 주입이 필요하다!
@Autowired
private ProductDao productDao;
// test는 절대 return이 안된다 void사용
@Test
public void findById_test() {
// given - 받아야 할 것 ex) delete에선 id가 필요하다 id를 임의로 준다
Integer productId = 1;
// when - 테스트
Product productPS = productDao.findById(productId);
// then - 검증
assertEquals("바나나", productPS.getProductName());
}
}
Junit에서 메서드에 필요한 것들
1. given : 데이터를 임의로 만들어 넘겨주어야한다.
ex)public void findById(Integer id) 이런 메서드에서 id값을 Junit에선 임의로 넘겨주어야한다.
2. when : 무엇을 테스트 할지 정해준다.
3. then : 검증 위의 코드에선 findById, DB에서 값을 찾아오는 메서드이다.
id가 1인 DB가 "바나나"가 맞는지 확인을 한다.
DB에서 확인하면 "바나나"의 ID는 1이다.
Test는 실행을 숫자 왼쪽 체크를 누르면 된다.
테스트로 넘겨주는id를 1(바나나)를 주고 테스트를 해보면 오류가 발생하지않는다.
가장 왼쪽이 초록색이라면 통과 되었다는 뜻이다.
만약 id값은 1 - 바나나 이지만 검증할 값에서 딸기를 넣으면 test 실패라고 나온다
어노테이션 및 메서드 참고 - https://velog.io/@ehddek
'Junit' 카테고리의 다른 글
Junit 통합 테스트 하기 위한 팁 (0) | 2022.10.28 |
---|---|
Junit - Dao 테스트 (0) | 2022.10.24 |
VsCode 설정 - 저장시 자동정렬, Intellij 키보드 설정 적용시키기 (0) | 2022.09.29 |
Junit 프로젝트 실행 시키기 (2) - 기본 셋팅 (0) | 2022.09.29 |
Junit - Vscode로 STS 프로젝트 실행에 필요한 확장프로그램 설치(1) (0) | 2022.09.29 |