
워밍업 클럽 3기 BE 클린코드&테스트 - 3주차 발자국
1개월 전
강의 수강
스프링 & JPA 기반 테스트 #5 #6 #7 #8 #9
Layered Architecture
단위 테스트 vs 통합 테스트
Ioc, DI, AOP
ORM, 패러다임의 불일치, Hibernate
String Data JPA
@SpringBootTest vs @DataJpaTest
@SpringBootTest vs @WebMvcTest
@Transactional(readOnly = true)
@RestController, @ExceptionHandle
Spring bean validation notnull, not empty, not blank
@WebMvcTest
ObjectMapper
Mock, Mockito, @MockBean
미션
[Readable Code] 강의의 두 프로젝트(지뢰찾기, 스터디카페) 중 하나를 골라, 단위 테스트를 작성해 봅시다. 조건은 아래와 같습니다.
스터디 카페로 테스트 코드 작성
getter 같은 기본적인 메서드 제외하고 모든 단위 테스트 작성
테스트하기 힘든 코드(상수로 선언된 path가 필요한 메서드)경우 테스트 만을 위한 코드 새로 만들어서 테스트(path 는파라미터로 주입)
public StudyCafeLockerPasses getLockerPassesTest(final String path) { try { List<String> lines = Files.readAllLines(Paths.get(path)); List<StudyCafeLockerPass> lockerPasses = new ArrayList<>(); for (String line : lines) { String[] values = line.split(","); StudyCafePassType studyCafePassType = StudyCafePassType.valueOf(values[0]); int duration = Integer.parseInt(values[1]); int price = Integer.parseInt(values[2]); StudyCafeLockerPass lockerPass = StudyCafeLockerPass.of(studyCafePassType, duration, price); lockerPasses.add(lockerPass); } return StudyCafeLockerPasses.of(lockerPasses); } catch (IOException e) { throw new RuntimeException("파일을 읽는데 실패했습니다.", e); } }
https://github.com/wjdrltjr5/inflearn-warming-up/tree/lesson6-4
회고
상수가 필요한 코드같은 경우 path를 파라미터로 받게 하는 것이 테스트 하기가 더 편리할 것 같아서 수정하였다
이렇게 하는 것이 맞는 것인지는 모르겠다.
댓글을 작성해보세요.