전체 글 썸네일형 리스트형 [TIL] 사이드 프로젝트 17일차 1. 개발 진행 상황 - 테스트 코드 what? 각 클래스마다 테스트를 하잖아? 예를 들어 컨트롤러를 테스트한다. 컨트롤러단 단위 테스트 단위테스트를 더 작게 쪼갠다고 생각하면 메소드마다 테스트가 나와야 되는 거지 게시글 작성 내가 구현한 컨트롤러는 requestPost, image, member 를 받고 서비스로 넘기고 서비스에서 받은 것을 응답 dto에 넣어서 반환하는 것 그러면 서비스를 스텁(?)으로 만들어서 응답해주기 스텁은 실제 기능 구현하지않고 원하는 값을 응답하게 할 수 있는 대역이니까! 그리고 상황 설정 requestPost, image, member값을 제대로 받지 못한 경우 requestPost 통으로 null, empty, " " 빈 문자열 requestPost 필드 중 필수 필드 .. 더보기 AssertJ 1. AssertJ JUnit에서 제공하는 assert() 메소드의 부족한 표현력을 충족시켜줌 타입별로 다양한 검증 메소드를 제공하여 테스트 코드를 더욱 쉽게 작성할 수 있게 도와줌 JUnit assert() 와 AssertJ 비교 id가 "a"를 포함하고 있는 지 여부 검사 // JUnit assert()사용 코드 assertTrue(id.contains("a")); // 단언 실패 메시지, 실패 이유를 알 수 없음 org.opentest4j.AssertionFailedError: expected: but was: // AssertJ 사용 코드, id가 "a" 를 포함하는 지 여부를 검사한다는 것을 직관적으로 확인할 수 있음 assertThat(id).contains("a"); // 단언 실패 메시지,.. 더보기 [TIL] 사이드 프로젝트 16일차 개발 진행 상황 - 단위 테스트 - 좋아요 기능 구현 - 이미지 업로드 예외 처리 더보기 TDD, 대역을 이용한 테스트 1. 대역 test double는 대역을 뜻함 실제 기능을 구현하지 않고 단순한 구현으로 실제 구현을 대체 2. 대역의 종류 대역 설명 스텁(Stub) 구현을 단순한 것으로 대체 테스트에 맞게 단순 동작 기능 수행 가짜(Fake) 제품에 적합하지 않지만 실제 동작하는 구현 제공 스파이(Spy) 호출된 내역 기록 기록한 내용은 테스트 결과 검증 시 사용 스텁이기도 함 모의(Mock) 기대한대로 상호작용하는지 행위를 검증 기대한대로 동작하지 않을 시 Exception 발생할 수 있음 스텁이자 스파이 상위 타입 인터페이스를 만들고, 그 인터페이스를 상속받아서 구현 1) 스텁(Stub) - 실제 기능 구현을 하지 않고 단순 동작 기능을 수행하는 Stub 대역 /** * CardNumberValidator(실제 .. 더보기 TDD, 테스트 코드의 구성 1. 상황 찾기 어떤 상황이 실행 결과에 영향을 줄 수 있는지 찾기 위한 노력 필요 다양한 예외 상황을 찾아내고 이를 코드에 반영해야 기능이 비정상적으로 동작하는 것을 막을 수 있음 2. 테스트 코드의 구성 요소 기능은 상황에 따라 달라 지기 때문에 상황(given), 실행(when) 결과 확인(then) 세 가지 요소로 테스트를 구성할 수 있음 JUnit에서 상황을 설정하는 방법은 테스트할 대상에 따라 달라짐 1) 각 테스트 메서드마다 객체를 생성해서 상황 설정 public class BaseballGameTest { @Test void exactMatch() { // given BaseballGame game = new BaseballGame("456"); // when Score score = ga.. 더보기 [TIL] 사이드 프로젝트 15일차 1. 개발 진행 상황 - 테스토 코드 작성중 - 예외 처리 계속 진행 중 2. 개발 중 발생한 이슈와 해결 에러 메시지 javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.NotEmpty' validating type 'sideproject.petmeeting.post.domain.Category'. Check configuration for 'category' 해결: @Valid어노테이션을 통해 유효성 검사를 하는데, 카테고리는 Enum으로 되어있고 카테고리를 @NotEmpty로 해서 발생한 에러로 Enum은 @NotNull 로 변경.. 더보기 RuntimeException 런타임 예외 종류 java.lang.객체 java.lang.Throwable java.lang.예외 java.lang.RuntimeException AnnotationTypeMismatchException ArithmeticException ArrayStoreException BufferOverflowException BufferUnderflowException CannotRedoException CannotUndoException CatalogException ClassCastException ClassNotPreparedException CMMException CompletionException ConcurrentModificationException DateTimeException DOMException Duplic.. 더보기 [TIL] 사이드 프로젝트 14일차 1. 개발 진행 상황 - 테스트 코드 공부 중 - Post 기능 구현 부분 member 코드와 Merge 후 회원 인증 관련 부분 코드 수정 더보기 이전 1 ··· 47 48 49 50 51 52 53 ··· 82 다음