- 기능테스트 : (제3자) 사용자 입장에서 전체 기능 테스트
- 통합테스트(전체테스트) : (개발팀) 클라이언트 측 툴 없이 테스트 코드로 진행하며, controller 부터 db까지 여러 계층이 연관되어 있음. 운영환경과 동일한 조건에서 테스트 @SpringBootTest
- 슬라이스 테스트(부분통합테스트) : (개발자) 애플리케이션을 특정계층으로 쪼개어 진행, Mock 객체를 사용해서 계층을 끊어서 테스트 범위 좁힐 수 있음
- 단위테스트(Unit Test) : (개발자) 테스트 해야할 부분만 테스트. 일반적으로 메서드 단위. 최대한 독립적이고, 작은 단위인 것이 좋음
- 단위테스트 원칙 : F.I.R.S.T
- Fast(빠르게)
- Independent(독립적으로, 실행순서 상관없이)
- Repeatable(반복가능하도록)
- Self-validating(TC 스스로 결과에 대한 T/F 판단 가능)
- Timely(시기 절절하게 - 테스트하려는 기능 구현을 하기 직전에 작성해야 함)
테스트 코드 작성 방식 : BDD(Behavior Driven Development)
- Given : 테스트를 위한 준비 과정
- 테스트에 필요한 전제 조건 작성
- 테스트 대상에 전달되는 입력 값(테스트 데이터) 작성
- When : 테스트할 동작(대상, 내용) 지정
- 단위 테스트에서 일반적으로 메서드 호출을 통해 테스트를 진행
- Then : 테스트의 결과를 검증. 예상했던 결과의 참/거짓 판단
- 일반적으로 예상하는 값(expected)과 테스트 대상 메서드의 동작 수행 결과(actual) 값을 비교해서 기대한 대로 동작을 수행하는지 검증(Assertion)하는 코드들이 포함
- assertion : 예상하는 결과 값이 참(true)이길 바라는 것
'Coding > Back - Spring Framework' 카테고리의 다른 글
Spring Testing JUnit 사용 2/3 #Day13-15 (0) | 2023.09.11 |
---|---|
[Error] JPA 테이블 생성 중 ORDER 테이블 : drop table if exists [*]order CASCADE 오류 (0) | 2023.09.04 |
(review2) Spring 구성하기(Controller - Serivce - Repository) #Day12 (0) | 2023.09.01 |
Spring Transaction #Day11 (0) | 2023.09.01 |
Spring Data JPA #Day10 (0) | 2023.08.31 |