728x90
TDD (2022.09.14 스터디 정리)
단위 테스트
어플리케이션 모듈 각각 독립적으로 테스트
스프링은 di를 이용해서 주입 -> 따라서 mocking 필요
ex) controller는 service를 받아오고 service는 repository
통합 테스트
전체적인 로직 테스트
어떻게 작성해야 하나? → Given-When-Then
Given : 입력값이나 기댓값을 줬을 때
When : 테스트할 메소드를 실행
Then : 메소드를 실행시킨 결과값이 예상값과 같은가
TDD - 테스트 주도 개발
장점
생산성 향상(요구사항에 대해 해결할 문제를 전체적으로 파악)
편의성(서버를 돌리지 않아도 체크를 할 수 있다)
*나는 테스트 코드 작성후 본 코드를 작성하다가 중간에 모델명이랑 변수명을
수정했었는데 테스트 하면서 미처 수정하지 못한 부분을 체크할 수 있었다.
첫 작성
test 코드를 작성하면 없는 메소드들이 빨간줄로 체크 되어있다.
해당 메소드를 만드는데 내용은 없고 단지 return값만 작성한다.
그래야 예외 처리를 순차적으로 작성할 수 있기 때문이다.
더티체킹
더티체킹을 하면 따로 repository에 save를 작성하지 않아도
엔티티 변경을 감지해서 알아서 적용한다.
아래 코드로 하면 save가 생략 가능
@Transactional
public Board saveBoard(BoardDto boardDto) {
Board board = boardService.setBoard(boardDto)
return board;
}
set~~가 있고 + @Transaction이 있으면 save를 생략가능 하다.
public Board saveBoard(BoardDto boardDto) {
Board board = new Board(boardDto);
boardRepository.save(board);
return board;
}
위는 set을 사용한게 아니니깐 save 생략 불가
728x90
'TIL' 카테고리의 다른 글
2022-09-25 스터디 ch1 정리 (0) | 2022.09.22 |
---|---|
2022.09.18 스터디 정리 (0) | 2022.09.19 |
JPA 동작원리 (0) | 2022.09.08 |
MyBatis (0) | 2022.09.08 |
프로젝트(+classic 에서 변경) (0) | 2022.09.01 |