test

TestCode

단위 테스트의 함정

테스트의 꽃은 단위 테스트라고 생각한다. 그런데 과연 단위 테스트가 만능일까?흔히 찾아볼 수 있는 테스트 피라미드이다. 단위 테스트가 든든히 받쳐주어야 비용이 비싼 테스트들에서 자원을 아낄 수 있다.나 역시 단위 테스트에서 대부분 테스트 커버리지를 다 채우고 통합 테스트부터는 해피케이스만 채우는 편이다. class UserService(private val userRepository: UserRepository) { fun foo(userName: String, userAge: Int) { val exists = userRepository.existsByUserName(userName) check (!exists) userReposi..

BackEnd/Spring

사내 테스트 환경 개선기 1 - PR 테스트 자동화 시간 단축

사내 테스트 환경 개선기 25년 1월부터 백엔드 개발자로서 새로운 회사에 출근했다. 원어민과 전화 외국어 교육 서비스를 제공하는 회사로 내가 하게 될 일은 Ruby on Rails 로 만들어진 기존 서버를 Kotlin + SpringBoot 로 마이그레이션 하는 작업이다. 입사했을 땐 사수님께서 어느 정도 기반을 마련해 두신 상태였다. 그럼에도 불구하고 몇 가지 개선할 점이 있었는데 그중 하나가 테스트와 관련된 내용이다.Github 레포에 PR 을 올리면 커밋마다 테스트를 실행하도록 Github Actions 를 사용하고 있었는데, 전체 테스트를 마치는데 10분가량 소요되고 있었다.이미 사수님도 코드 리뷰에 불편함을 느끼고 있고 나 역시 이대로 가면 테스트가 늘어났을 때 너무 많은 시간이 소요될 것 같다..

Language/Java

Junit5 에서 예외 Test

기존 Junit4에서는 예외를 발생시키는 테스트 진행시 @Test 어노테이션에 expected 속성으로 발생시키고자 하는 Exception class를 명시해두면 해당 예외가 발생하면 테스트 성공으로 결과를 나타내줬습니다 @Test(expected = NotEnoughStockException.class) public void 상품주문_재고수량초과() throws Exception { // given Member member = createMember(); Item book = createBook("시골 JPA", 10000, 10); int orderCount = 11; // when orderService.order(member.getId(), book.getId(), orderCount); // t..

djawnstj
'test' 태그의 글 목록