TIL

TDD

haedal-uni 2022. 9. 15. 00:34
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