inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

강의보고 응용하다가 테스트코드 부분 질문이 있습니다.

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

WebMvcTest를 이용한 테스트코드 작성하는데 원하는 대로 값이 안나와요... @Test void store_canNotAccess1() throws Exception { //given //when //then mockMvc.perform(post("/store/somePoint") .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isBadRequest()) .andExpect( result -> { String content = result.getResponse().getContentAsString(); System.out.println(content); }); } @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession(false); if (session == null || session.getAttribute(SessionConst.LOGIN_PARTNER) == null) { throw new CustomException(ErrorCode.PARTNER_ONLY_ACCESS); } return true; } session에 null이 들어가는 거 까진 디버깅으로 확인을 했는데 jakarta.servlet.ServletException: Request processing failed: reservation.hmw.exception.CustomException: 파트너 회원만 접근할 수 있습니다. 이런식으로 테스트가 실패를 하네요... 어떻게 하면 예외를 잡아서 성공 테스트코드를 짤 수 있을까요?

  • spring
  • mvc
kongminoo 댓글 1 좋아요 0 조회수 140

500에러

해결됨

스프링 부트 웹 개발 입문 - 따라하며 배우기

<!DOCTYPE html> <html lang="ko"> <head> <title>Coffee Order List</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" type="text/css" href="/css/comm.css"> <link rel="stylesheet" type="text/css" href="/css/coffee.css"> </head> <body> <!-- 헤더 위치 --> <div class="topnav"> <a href="/v2/home">Home</a> <a href="/v2/menu">커피메뉴</a> <a href="/v2/order">주문내역</a> <a href="/v2/member">고객정보</a> </div> <div id="main" style="font-size:large; text-align: center; "> <div id="search" style="height: 150px;padding: 15px; font-size: small; width: 90%; margin-left: auto; margin-right: auto;"> <h3>[ Coffee Order List <span style="font-size:30px;">&#128722;</span> ]</h3> <form name="fm_order" autocomplete="on"> <fieldset> <legend> [검색조건] </legend> <label>등록기간</label><input type="date" id="start_date" name="start_date" min="2020-01-01" max="2023-12-31"> - <input type="date" id="end_date" name="end_date" min="2020-01-01" max="2023-12-31"> &nbsp;&nbsp; <label>메뉴명</label> <input type="text" id="menu" name="menu"> &nbsp;&nbsp; <label>고객명</label> <input type="text" id="name" name="name"> </select> &nbsp;&nbsp;<input type="submit" value="조회" style="width: 80px;height: 30px;font-weight: bold; font-size: medium"> <!-- <a href="javascript:loadDocArray()">test</a> --> <!-- <label>CheckBox : </label><span id="idCheckBox"></span>--> </fieldset> </form> </div> <table class="table"> <thead> <tr class="tr_td"> <th>Chk</th> <th>주문번호</th> <th>커피No</th> <th>메뉴명</th> <th>가격</th> <th>고객ID</th> <th>고객명</th> <th>주문일자</th> </tr> </thead> <tbody id="t_body"> <!--- 데이타 출력 부분 --> <tr th:each="prod : ${list}"> <td><input type="checkbox" name="chkOrderNo" th:value="${prod.getNo()}"></td> <td th:text="${prod.getNo()}">주문번호</td> <td th:text="${prod.getCoffee_no()}">커피No</td> <td th:text="${prod.getCoffee()}">메뉴명</td> <td th:text="${prod.getCust_id()}">고객ID</td> <td th:text="${prod.getName()}">고객명</td> <td th:text="${prod.getReg_day()}">주문일자</td> </tr> </tbody> </table> </div> <!-- 푸터 위치 --> <div class="footer"> <!-- https://www.w3schools.com/html/html_emojis.asp --> <h4>[Footer] <span style="font-size:30px;">&#9973;</span> Spring boot 항해 ~ with Me</h4> </div> </body> </html> 계속 오류가 There was an unexpected error (type=Internal Server Error, status=500). An error happened during template parsing (template: "class path resource [templates/v2/order/order.html]") org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/v2/order/order.html]") at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse (AbstractMarkupTemplateParser.java:24 1) 이렇게 떠요ㅠㅠ

  • spring
  • mvc
  • spring-boot
mins199600 댓글 2 좋아요 0 조회수 200

PaymentConfig에 대해 궁금한게있습니다

미해결

토비의 스프링 6 - 이해와 원리

@Bean public ApiTemplate apiTemplate() { return new ApiTemplate(new HttpClientApiExecutor(), new ErApiExRateExtractor()); } 위 코드에서 new HttpClientApiExecutor(), new ErApiExRateExtractor()를 new 하지않고 exRateProvider()에서 apiTemplate()를 bean으로 만든것처럼 bean으로 생성해서 넣어도 괜찮은건가요???

  • java
  • spring
댓글 2 좋아요 0 조회수 192

패키지 질문 있습니다

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] SpringConfig를 만들 때 service 패키지에 만든 이유가 있나요? 메인 클래스와 같은 패키지 및 아래 패키지에 존재하면 상관 없나요?

  • java
  • spring
  • mvc
  • spring-boot
bbin0409 댓글 3 좋아요 0 조회수 219

authenticationEntryPoint 질문입니다.

미해결

스프링 시큐리티 OAuth2

강의 10분22초 강의자료 그림에서 인증이 실패하면 DaoAuthenticationProvider가 BasicAuthenticationEntryPoint를 호출한다고 돼있는데, AuthenticationEntryPoint는 이 과정에서의 실패가 아니라 해당 필터를 지나서 AuthorizationFilter에서 인증이 안된 사용자가 권한으로 인해 예외가 발생했을 경우 호출되는거 아닌가요? UsernameAuthenticationFilter에선 이런식이였던거 같은데 제가 잘못 이해한걸까요? DaoAuthenticationProvider에서 인증이 실패하면 BasicAuthenticationEntryPoint가 아니라 해당 필터에 등록된 FailureHandler가 호출되야할거 같은데 설명 부탁드립니다!

  • java
  • spring
  • spring-boot
  • oauth
에욱 댓글 1 좋아요 0 조회수 169

응용해볼려고 세션을 이용한 테스트코드 작성중인데 잘모르겠습니다.

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

강의를 보다 혼자 응용해봤는데 @Mock private HttpServletRequest request; @Mock private HttpSession session; @Test void store_canAccess() throws Exception { // given given(request.getSession(false)).willReturn(session); given(session.getAttribute(SessionConst.LOGIN_PARTNER)) .willReturn(1L); // when // then mockMvc.perform(post("/store/somePoint") .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()); } @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession(false); if (session == null || session.getAttribute(SessionConst.LOGIN_PARTNER) == null) { throw new CustomException(ErrorCode.PARTNER_ONLY_ACCESS); } return true; } 채찍피티의 도움과 함께 이렇게 짰는데 CustomException이 터져요...혹시 잘못된 부분이 있을까요

  • spring
  • mvc
kongminoo 댓글 2 좋아요 0 조회수 227

로그가 안찍혀요 ㅠㅠ

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용 OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 2024-10-03T23:40:00.663+09:00 INFO 9488 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2024-10-03T23:40:00.665+09:00 INFO 9488 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2024-10-03T23:40:00.670+09:00 INFO 9488 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. > Task :test BUILD SUCCESSFUL in 4s 4 actionable tasks: 1 executed, 3 up-to-date 오후 11:40:00: Execution finished ':test --tests "jpabook.jpashop.MemberRepositoryTest.testMember"'. 테스트는 통과하는데 저렇게 뜨면서 로그가 안찍히네요 ㅠㅠ 설정도 줄맞춰서 다 해봤는데 도저히 안돼서 .. 뭐가 문제일까요 ㅠ

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
Teo 댓글 2 좋아요 0 조회수 591

v2 객체 만드는중 입니다

해결됨

스프링 부트 웹 개발 입문 - 따라하며 배우기

v2 객체 만들고 이름도 바꾸고 패키지도 다시 만들었는데 이 오류가 자꾸 발생합니다..3일동안 하는데 계속 같은 오류가 뜨네여 [2024-10-0323:26:47:2892] [restartedMain] DEBUG o.s.b.d.LoggingFailureAnalysisReporter -Application failed to start due to an exception org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.sailing.v1.dao.MenuDao' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

  • spring
  • mvc
  • spring-boot
mins199600 댓글 2 좋아요 0 조회수 163

스프링 jpa 기반의 Entity가 올라온다면 서비스 계층이 순수하다고 볼 수 있을까요?

미해결

스프링 DB 1편 - 데이터 접근 핵심 원리

안녕하세요? 강의 잘 듣고 있습니다 강의 내용을 쭉 들으면서, 결과적으로 서비스계층에 어떻게 하면 순수한 비즈니스 로직을 남겨둘수 있을까? 에 대한 고민을 풀어주셨다고 생각합니다. 그런데 저 개인적으로 드는 의문은, 일반적으로 JPA를 사용한다면 jpa ORM Entity가 서비스계층에 출몰하게 될텐데, 이는 곧 서비스계층이 JPA기반의 스택에 의존하게 된다는 것 아닌가요? 예를 들어 DB를 MYSql -> Mongo로 바꾼다고 했을 때, 서비스계층에서의 코드변화도 필요할 것 같은데, 이러한 부분에 대해서 어떻게 생각하시는지가 궁금합니다.

  • spring
  • mvc
  • spring-jdbc
김영빈 댓글 2 좋아요 0 조회수 217

회원 리포지토리와 회원 서비스

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 내용] 회원 리포지토리는 인터페이스와, 메모리 구현체로 이루어져 있습니다. 그런데 회원 서비스는 회원 리포지토리와는 반대로 클래스로만 이루어져 있는데 왜 회원 리포지토리는 회원서비스처럼 클래스로 만들지 않고 인터페이스와 메모리구현체 클래스로 나뉘었는지 궁금합니다.

  • java
  • spring
  • mvc
  • spring-boot
soojinkimss 댓글 2 좋아요 0 조회수 153

파라미터에 String이나 기본 타입을 받을 때 @RequestParam을 생략하면

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 파라미터에 String이나 기본 타입을 받을 때 @RequestParam을 생략하면 @RequestParam(required = false)처럼 동작하는 것이 맞나요?

  • spring
  • mvc
hj 댓글 1 좋아요 0 조회수 147

애플리케이션 예외 사용에 대한 질문

미해결

토비의 스프링 6 - 이해와 원리

토비 스프링 3.1 책과 강의를 병행하면서 궁금한 점이 있어서 질문 남깁니다. 책 [4.1.4 예외처리 전략 - 애플리케이션 예외] 에서는 '외부의 예외상황이 원인이 아니라 애플리케이션 자체의 로직에 의해 의도적으로 발생시키는 예외도 있다' 라고 하는데요. 예를들어 잔고 부족과 같은 상황에서 예외상황에 대한 리턴값을 코드화 하는것 보다는 InsufficientBalanceException 과 같은 체크 예외를 던지는것도 좋은 방법(코드가 이뻐짐) 으로 소개가 됩니다. 그러나 강의에서 예외는 '정상적인 값을 리턴으로 수단으로 사용' 하는 것은 지양하고 '예외적인 상황에서만 사용' 해야 한다고 해주셔서 조금 헷갈리네요. 제가 이해를 잘못했을 수도 있는데요. 같은 상황이 맞다면 어떤게 더 맞는 방향인지 궁금합니다.

  • java
  • spring
차도인 댓글 1 좋아요 0 조회수 224

강의를 수강하면서 2가지 질문이 생겼습니다

미해결

쥬쥬와 함께 하루만에 끝내는 스프링 테스트

안녕하세요 쥬쥬님의 강의를 보면서 테스트 코드 작성에 도움을 많이 받고 있습니다. 감사합니다. 질문이 있어서 글을 올려드립니다. 질문1. application.yml 에서 mysql, redis, kafka 의 호스트를 컨테이너 이름으로 지정 해주면 굳이 IntegrationTestInitializer 정적 클래스의 initialize() 메서드를 구현해 동적으로 호스트와 아이피를 지정할 필요가 없을 것 이라고 생각했습니다. 왜 application.yml 에서 각 모듈의 호스트를 localhost 로 지정해주셨는지 여쭤보고 싶습니다. 질문2. redis, kafka 에 특화된 테스트 컨테이너 모듈을 사용하셨는데, 이러한 모듈을 사용하지 않고 그냥 testImplementation "org.testcontainers:testcontainers:1.19.0" 만을 사용해서 테스트 컨테이너를 구동시켜 테스트해도 되는지 여쭤보고 싶습니다. 예를 들어 이런 식으로 입니다. 질문 읽어주셔서 감사합니다.

  • spring
  • docker
  • junit
  • mockito
  • 소프트웨어-테스트
cjkimhello97 댓글 2 좋아요 0 조회수 230

강의 소스코드

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

혹시 강의 소스코드를 받을 수 있을까요?? 의존성 문제가 해결이 안돼서 강의 코드를 한번 받고싶습니다

  • java
  • spring
  • mvc
  • spring-boot
최진욱 댓글 1 좋아요 0 조회수 119

생성메서드에 대한 질문입니다.

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

제가 강의를 듣다가 Order 엔티티의 생성메서드의 파라미터에는 OrderItem의 리스트가 넘어오고, OrderItem 엔티티의 생성메서드의 파라미터에는 Item 객체가 넘어오는데 각각 Order 엔티티의 생성메서드에 OrderItem 리스트가 넘어오는 이유는 주문상품이 있어야 주문이 있기 때문이고, OrderItem 엔티티의 생성메서드에 Item 객체가 넘어오는 이유는 상품이 있어야 주문상품이 있기 때문이라고 이해하면 될까요??

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
JMJ 댓글 2 좋아요 0 조회수 115

중복 등록과 충돌 강의에서 질문있어요

미해결

스프링 핵심 원리 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 빌드실행도 Gradle(default)으로 설정했는데 왜 안된는 건가요?

  • spring
  • 객체지향
jun 댓글 2 좋아요 0 조회수 351

회원가입 등록 이후 두번째 회원가입부터 오류 발생

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

2024-10-02T00:24:30.390+09:00 ERROR 17692 --- [hi-spring] [nio-8080-exec-9] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because the return value of "com.example.hi_spring.domain.Member.getName()" is null] with root cause java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because the return value of "com.example.hi_spring.domain.Member.getName()" is null at com.example.hi_spring.repository.MemoryMemberRepository.lambda$findByName$0( MemoryMemberRepository.java:31 ) ~[classes/:na] at java.base/ java.util.stream .ReferencePipeline$2$1.accept( ReferencePipeline.java:178 ) ~[na:na] 회원가입에서 이름 입력 이 후 두번째부터 회원가입 등록 시 위와 같은 오류메세지가 나타납니다. 회원목록 화면으로 가보아도 처음에 정상적인것처럼 등록한 이름도 나오지 않고, #이름 위와 같은 화면으로 숫자만 생성되어 있고 빈칸으로 나옵니다. 오류메세지에서는 findByName 부분이 잘못 되어졌다고 나오는데 오류원인이 무엇인지 모르겠습니다. 도움부탁드립니다.

  • java
  • spring
  • mvc
  • spring-boot
김윤식 댓글 2 좋아요 0 조회수 175

중복회원조회 테스트 오류

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 회원가입 테스트는 성공했는데 중복회원예외에서 테스트가실패합니다

  • java
  • spring
  • mvc
  • spring-boot
qkrwntjs27 댓글 2 좋아요 0 조회수 225

MemberServiceIntegrationTest 오류

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 오류가 나는 이유를 모르겠습니다,, ㅜ jdbc는 코드 따라치지않았구 jpa부터 코드작성했습니다

  • java
  • spring
  • mvc
  • spring-boot
qkrwntjs27 댓글 2 좋아요 0 조회수 264

CertificationServiceTest에서 MailSender 인터페이스가 아닌 FakeMailSender를 이용하는 것

미해결

Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트

현재 CertificationServiceTest를 할 때 MailSender를 주입받는 것이 아닌 FakeMailSender를 주입받아서 테스트를 진행하는데 MailSender를 만든 이유가 의존성을 역전시키기 위해서 만든 것인데 FakeMailSender를 사용하게 되면 의존성 역전 원칙이 적용된 것이 아니지 않나요??? FakeMailSender는 mock으로 사용하고 있지만 구현체이니까 MailSender를 사용해야 되는 것이 아닌가요?? 그냥 테스트 목적으로 필드 값들이 잘 전달되는지 확인하기 위해서 사용하기 때문에 상관이 없는 건지 궁금합니다. MailSender 인터페이스를 이용한다면 검증 부분에서 다운 캐스팅을 해줘야 하기 때문에 사용하지 않은 건가요???

  • spring
  • tdd
  • jpa
  • 소프트웨어-테스트
  • unittest
햄토리 댓글 1 좋아요 0 조회수 242

인기 태그

인프런 TOP Writers

주간 인기글