티스토리 뷰
Testable Code
- 테스트 커버리지 100% 가 목표가 아니라, 각 요구사항에 대해서 정확히 기능을 하는지 테스트 하는 것을 목표로 한다.
[너의 코드는]
- 어떻게 하면 Testable 한 테스트 코드를 작성할 수 있을까?
- 어떻게 테스트 가능한 코드를 작성할 수 있는지에 대한 발표이다.
- 모델 : 해당 레이어(계층)에서 사용하는 데이터를 표현하는 객체
- 커플링을 줄이기 위해서는?
- 이렇게 커플링을 줄이면 도메인을 엔티티로 전환시키는 비용이 든다.
- 루즈한 커플링은 달성했지만 불필요한 작업이 생겼다.
- 간결함을 갈 것인가 VS 결합도를 낮출것인가?
-
케이스 1번 : 개발 불가 ㅋㅋㅋ
케이스 2번 : DDD 도메인을 JPA 모델이나
케이스 3번 : DB에서 나는 원하는대로 데이터를 보내줄거야. 서비스 사용하는 것이 DTO
케이스 4번 : 허재코치님 선호. 도메인을 보호할 수 있는 객체. 도메인 먼저 작성하고 Unit 테스트 작성
도메인이 필요한 DB 엔티티를 구현.
실질적인 구현은 컴포넌트에서 구현 및 조립. DB에 접근하기 전에 1개의 계층을 더 만들어준다.
- 커플링 패키지 : 도메인별로 패키지를 묶는것
- 트랜잭션은 작게 가져간다.
- 성공하는 케이스에 대한 검증보다는 실패하는 케이스를 더 중점적으로 한다.
-
search 함수가 비대해진다. 과연 검색결과 반환하는게 목적인지, 페이지 검색하는게 목적인지 등등
왜냐하면 테스트 케이스를 통과하기 위한 코드이기 때문이다. 그래서 이런 경우 리팩토링 필요.
리팩토링 후
- 테스트코드 작성시에 짧게 짧게 가져가는 것을 추천한다.
[이번 주차에 하게 될 것]
'프로젝트' 카테고리의 다른 글
[스프링배치개발] EntityManagerFactory 오류 원인 및 해결 (1) | 2024.01.28 |
---|---|
[인스타그램클론코딩] 삽질 정리 : ConfirmSecret 후 Home 화면으로 이동 불가 (0) | 2021.03.21 |
[인스타그램클론코딩] #12.6 Confirm (useMutation, 토큰 저장) (0) | 2021.03.17 |
[인스타그램클론코딩] 삽질 후기 - navigation.navigate, sendGrid 메일전송 (0) | 2021.03.17 |
[인스타그램클론코딩] 스프레드연산자, onChangeText #12.2 Auth Components part Two (0) | 2021.03.01 |
- Total
- Today
- Yesterday
- GIT
- 항해플러스후기
- pop_back
- Spring boot
- 개발자 회고
- 월부닷컴
- 깃
- Inception
- push_back
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- 폭포수
- 2023년
- 열반스쿨기초반
- 깃허브
- 도커
- front
- docker
- 유즈케이스
- 월급쟁이부자들
- 인셉션
- 내년은 빡세게!!
- 항해솔직후기
- Use case
- github
- 부동산공부
- 파라메터
- resize
- 재테크공부
- 관계대수
- 항해플러스백엔드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |