본문 바로가기
프로젝트 - Twogether

23.08.28

by J1-H00N 2023. 8. 28.

테스트 코드를 작성함에 있어서 여러 문제가 발생해 무엇이 문제인지 확인해 보니 단위테스트 방식와 통합 테스트 방식을 혼합해 사용하고 있었다고 한다.

 

지금 테스트 하고자 하는 것은 각 메서드가 제대로 작동하고 있는지 여부이니, 단위 테스트로 정확하게 테스트 하기로 했다. 데이터베이스에 연결 > @BeforeEach 사용 ...

코드는 아래 블로그 참조

https://brunch.co.kr/@springboot/418

 

주니어 개발자를 위한 단위테스트 샘플 코드 소개

자바&스프링 환경에서 단위 테스트 경험해보기 | 제 글을 읽지 마세요! 최근에 나온"단위테스트" 라는 책을 읽어보시길 바랍니다. ^^ (2021.06.15) 추가 의견 이 글을 작성한지 1년이란 시간이 지났습

brunch.co.kr

 

단위 테스트를 진행하기 위해 코드를 짜던 와중, deckservice를 구현하기 위해서는 생성자를 통해 deckservice 객체를 구현해줘야 하는데, 현재 deckservice에는 orphanremoval을 제거한 후폭풍으로 의존성이 너무 많은 상태이다. 그래서 현재는 오직 delete만을 위해 불러왔던 repository들을 전부 테스트 단에 추가 해줘야 하는데, 이를 해결하기 위한 방법으로는 deckService를 쪼개서 의존성을 분담하는 방법이다.

@Service
@RequiredArgsConstructor
public class DeckService {

    private final BoardRepository boardRepository;
    private final DeckRepository deckRepository;
    // 여기서부터
    private final CardLabelRepository cardLabelRepository;
    private final CommentRepository commentRepository;
    private final CheckListRepository checkListRepository;
    private final ChlItemRepository chlItemRepository; 
    // 여기까지는 delete를 위해서만 존재하므로
    // 위 부분이 필요한 메서드만 분리한 service를 따로 구현한다.
    private final CardRepository cardRepository;
    private static final float CYCLE = 128f;

 

mock을 사용해 단위테스트를 하는 방법이 아무것도 안돼서 일단 희열님이 작성하신 springbootTest를 사용한 코드와 유사하게 다시 만들어볼 예정이다.

후에 이 방법을 다시 시도한다면 

https://github.com/sepang-pang/Final-Projecthttps://brunch.co.kr/@springboot/418 를 참조하자.

 

GitHub - sepang-pang/Final-Project

Contribute to sepang-pang/Final-Project development by creating an account on GitHub.

github.com

 

주니어 개발자를 위한 단위테스트 샘플 코드 소개

자바&스프링 환경에서 단위 테스트 경험해보기 | 제 글을 읽지 마세요! 최근에 나온"단위테스트" 라는 책을 읽어보시길 바랍니다. ^^ (2021.06.15) 추가 의견 이 글을 작성한지 1년이란 시간이 지났습

brunch.co.kr

 

'프로젝트 - Twogether' 카테고리의 다른 글

23.09.18  (0) 2023.09.18
23.08.29  (0) 2023.08.29
23.08.25  (0) 2023.08.25
23.08.24  (0) 2023.08.24
23.08.23  (0) 2023.08.23