mock 4

Mock 객체 확인

verify(검증) 메소드를 이용하여 특정 메소드가 실행이 됐는지, 몇번 실행됐는지, 실행이 안됐는지 등 검증을 해볼 수 있다. verify 예제 @Test public void pratice(){ StudyService studyService = new StudyService(memberService, studyRepository); assertNotNull(studyService); Study study = new Study(10, "test"); Member member = new Member(); member.setId(1L); member.setEmail("eunjia190@gmail.com"); when(memberService.findById(1L)).thenReturn(Optional.of..

JAVA 2022.12.15

Mock 객체 stubbing

모든 Mock 객체의 행동 Null 을 리턴한다.( Optional 의 경우에는 Optional.empty 리턴 ) Primitive 타입은 기본 Primitive 값 콜렉션은 비어있는 콜렉션 void 메소드는 예외를 던지지 않고 아무런 일도 발생하지 않는다. stubbing 예제 : when 을 사용하여 findById에 1을 호출하면 member 값을 return 받게 작성해보았다 @Test void createStudyService(){ StudyService studyService = new StudyService(memberService, studyRepository); assertNotNull(studyService); Member member = new Member(); member.setI..

JAVA 2022.12.15

Mockito

mockito 는 mockito-core 와 mockito-junit-jupiter 두가지 의존성을 추가해줘야하는데 애초에 spring boot 프로젝트로 생성을 하면 자동으로 주입되어 있다. 직접 추가하려면 maven repository에서 추가! mockito는 쉽게 말해서 가짜 객체를 만들어 준다고 생각하자! 현재 MemberService는 interface 만 있고 구현되어있진 않다. 이럴때 test code 작성시 MemberService 에 가상의 Mock 인스턴스를 직접 만들어서 사용해야한다. @ExtendWith(MockitoExtension.class) // 이 어노테이션이 있어야 제대로 Mock이 동작한다. class StudyServiceTest { @Mock MemberService..

JAVA 2022.12.14

[JAVA] API 구현 시 테스트 개발

@WebMvcTest MockMvc 빈을 자동 설정 해준다. 그냥 가져와서 쓰면 됨. 웹 관련 빈만 등록해준다. @MockMvc 스프링 MVC 테스트 핵심 클래스 웹 서버를 띄우지 않고도 요청을 처리하는 과정을 확인가능 → 컨트롤러 테스트용으로 자주 쓰임 테스트 내용 1. 입력값들을 전달하면 JSON 응답으로 201 값이 나오는지 확인 - Location 헤더에 생성된 이벤트를 조회할 수 있는 URI 담겨있는지 확인 - id는 DB에 들어갈 때 자동 생성된 값으로 나오는지 확인 @RestController @ResponseBody를 모든 메소드에 적용한 것과 동일 ResponseEntity를 사용하는 이유 응답코드, 헤더, 본문, 모두 다루기 편한 API Locatio..

JAVA 2022.06.02