inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

강의 43분 35초쯤에 대해 질문 있습니다.

미해결

Practical Testing: 실용적인 테스트 가이드

OrderResponse에서 of 메서드 부분에 빌더 패턴과 정적 팩토리 메서드를 같이 쓰는걸로 이해를 했습니다. 저는 빌더 패턴으로 객체를 생성하는 것과 정적 팩토리 메서드로 객체를 생성하는게 결이 약간 다른(?) 느낌으로 이해를 해서 이렇게 같이 써도 상관이 없는지 궁금합니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
감바스 댓글 1 좋아요 0 조회수 175

yml 프로파일 관련해서 질문 있습니다.

미해결

Practical Testing: 실용적인 테스트 가이드

spring: profiles: default: local datasource: url: jdbc:h2:mem:~/cafeKioskApplication driver-class-name: org.h2.Driver username: sa password: jpa: hibernate: ddl-auto: none --- spring: config: activate: on-profile: local jpa: hibernate: ddl-auto: create show-sql: true properties: hibernate: format_sql: true defer-datasource-initialization: true # (2.5~) Hibernate 초기화 이후 data.sql 실행 h2: console: enabled: true --- spring: config: activate: on-profile: test jpa: hibernate: ddl-auto: create show-sql: true properties: hibernate: format_sql: true sql: init: mode: never 아래와 같이 default: local로 설정하면 on-profile: local로 부분이 실행된다는 걸까요? spring: profiles: default: local ... --- spring: config: activate: on-profile: local ... 하나의 파일에 local 관련 yml, test관련 yml을 작성하면 yml 파일이 굉장히 비대해질꺼 같은데 실무에서도 하나의 yml에 전부 집어넣는지 아니면 yml을 분리하는지 궁금합니다. --- 이 부분은 구분 지을려고 그냥 넣은건가요?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
감바스 댓글 2 좋아요 0 조회수 285

도메인 레이어 질문

해결됨

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요. 우빈님 두 가지 질문이 있습니다. 도메인 레이어에 Repository 를 넣으셨는데 도메인과 Repository 를 같이 두신 이유가 있으신가요? 현재 도메인 모델과 Jpa Entity를 동일하게 가져가고 있는데 이로인해서 겪으신 문제는 없으신가요? 엄격한 DDD를 위해서라면 도메인 모델을 JPA 엔티티로 쓰는 것이 아니라 JPA 엔티티에 Convert 메서드를 만들어서 처리하고 있더라구요. 이에 대한 우빈님의 생각이 듣고 싶습니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
wisehero 댓글 1 좋아요 0 조회수 147

강의 2분 40초 부분에 대해 질문 있습니다.

미해결

Practical Testing: 실용적인 테스트 가이드

강의 2분 40초쯤에 "개발하면서 고민했던거를 테스트 코드에 녹여낸다." 이 부분에 대해 궁금증이 있습니다. 테스트 코드를 통해서(예외 케이스도 짯다면) 다양한 케이스들 고려할 수 있기 때문에 테스트 코드에 녹여낼 수 있다. 구현 로직을 테스트 코드로 테스트 하면서 살펴 볼 수 있기에 구현 로직에 대해 고민 했던 부분도 담아낼 수 있다. 이렇게 이해를 했는데 맞게 이해를 한건지 궁금합니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
감바스 댓글 1 좋아요 0 조회수 124

테스트코드 순서 질문

미해결

Practical Testing: 실용적인 테스트 가이드

강의를 듣다 궁금한게 생겼습니다. 보통 API 개발을 할 때, 컨트롤러단 부터 완성이 되고 나머지 서비스나 영속성 계층 로직이 완성 되는것 같은데 테스트 코드 순서를 어떻게 가져가시나요 ? 강의에서는 영속성 -> 서비스 -> 컨트롤러 순으로 테스트가 진행 되는데 이 순서대로 하시나요 ?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
돈벌고싶다 댓글 2 좋아요 0 조회수 194

@SpringBootTest 사용 이유

미해결

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요! Persistence Layer에서 @Mock 대신 @SpringBootTest를 사용해 단위 테스트를 진행하는 이유가 궁금합니다! 리소스가 더 사용되면서 테스트가 오래걸리는 단점이 있지 않나요? 같은 이유로, Business Layer에서 @Mock과 @InjectionMocks으로 단위테스트를 진행하는 대신, @SpringBootTest로 통합테스트를 선호하시는 이유가 무엇인가요? @SpringBootTest를 사용해도 큰 단점은 없는걸까요?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
강연주 댓글 2 좋아요 0 조회수 266

실습 코드 커밋

미해결

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

커밋을 강의 중간에 계속 하던데 깃허브에는 커밋이 한개밖에 없네요 어떻게 알수있을까요

  • spring
  • tdd
  • jpa
  • 소프트웨어-테스트
  • unittest
김혁준 댓글 1 좋아요 0 조회수 397

given - when - then 구조에 대해 질문 있습니다.

미해결

Practical Testing: 실용적인 테스트 가이드

@Test void remove() { CafeKiosk cafeKiosk = new CafeKiosk(); Americano americano = new Americano(); cafeKiosk.add(americano); assertThat(cafeKiosk.getBeverages()).hasSize(1); cafeKiosk.remove(americano); assertThat(cafeKiosk.getBeverages()).isEmpty(); } 저는 given은 CafeKiosk cafeKiosk = new CafeKiosk(); 이런식으로 객체를 생성하는 단계 when은 cafeKiosk.add(americano); 와 같이 실제 메서드를 사용하는 단계 then은 assertThat(cafeKiosk.getBeverages()).isEmpty(); 와 같이 실제값과 기대값을 검증하는 단계라고 이해를 했습니다. 제가 given - when - then에 대해 위와 같이 이해를 했는데 맞게 이해를 한건지 궁금합니다. 먼가 깔끔한(?) 코드는 given - when - then이 딱딱 나눠져야 하는건지 (객체 생성은 given 쪽에 몰아두고 메서드 사용은 when쪽에 몰아두고 검증은 then쪽에 몰아두는) 궁금합니다. 하나의 단위 테스트에서도 given - when - then 의 흐름이 여러개가 존재할 수 있나요? 전체적인 하나의 흐름만 존재하는 건지 아니면 단위 테스트 내에서도 여러 흐름이 존재하는건지 궁금합니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
감바스 댓글 2 좋아요 0 조회수 188

UserEntity 메서드

미해결

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

좋은 강의 감사합니다. UserEntity 클래스에 있는 from 메서드는 static, toModel 메서드는 그렇지 않습니다. 둘의 차이와 from 메서드를 static 으로 설정한 이유가 있을까요?

  • spring
  • tdd
  • jpa
  • 소프트웨어-테스트
  • unittest
highjune 댓글 2 좋아요 0 조회수 309

강의를 수강하면서 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 조회수 228

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

미해결

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

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

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

레이어드 아키텍처 개발에 대하여

미해결

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

섹션 6 진화하는 아키텍처의 3번째 강의인 핵사고날에 대한 사견 강의 중 8분 9초에 강사님께서 시스템이 명확할 때, 추상화가 너무 많이 되어있다면 쓸모없는 구역이라고 말씀하시고 Spring/JPA/RDB 이 3개를 쓸게 명확하다면 레이어드 아키텍처로 개발하라고 말씀하셨는데 그럼 기술 스택이 명확한 상황이라서 레이어드 아키텍처로 개발을 시작하게 된다면 전체적인 강의 통틀어서 말씀하셨던 의존성 역전, JPA에 종속적인 문제, 도메인 중점 개발 이런 것들이 필요 없어지게 되는걸까요? 레이어드 아키텍처 개발이든 핵사고날 아키텍처로 개발을 하든 도메인을 중심으로 개발하는 것이 중요하다고 생각합니다. 하지만 의존성 역전으로 인한 추상화나 그로 인한 테스트 작성이 쓸모가 없어지게 되는걸까요?

  • spring
  • tdd
  • jpa
  • 소프트웨어-테스트
  • unittest
springYam 댓글 1 좋아요 0 조회수 244

BDDMockito의 when을 사용한 코드가 given 절에 있는 이유가 궁금합니다.

미해결

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

섹션3 - 테스트추가하기: h2를 이용한 service 테스트 에서 UserService 의 create 를 테스트하기 위해 Mock으로 주입된 JavaMailSender 의 send 를 다음과 같이 given 절에 추가하셨습니다. https://tecoble.techcourse.co.kr/post/2020-09-29-compare-mockito-bddmockito/ 에 따르면 BDDMockito는 given-when-then 구조의 시나리오 기반 테스트를 진행할 때, 시나리오에 맞게 테스트가 읽힐 수 있도록 도와주는 역할이라고 하였습니다. 따라서 저는 해당 코드를 when 절에 추가하였는데, 다른 분들은 어떤 의견이신지 궁금합니다...!

  • spring
  • tdd
  • jpa
  • 소프트웨어-테스트
  • unittest
cho766 댓글 1 좋아요 0 조회수 245

테스트에서 주입과 생성

미해결

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

안녕하세요 좋은 강의 잘 듣고 있습니다. 사소한 질문이지만요..! <테스트 추가하기:mockmvc 를 이용한 controlelr 테스트 강의> 의 13:00 에서요 ObjectMapper 를 @Autowired 로 주입받아서 쓰지 않고 생성하셔서 쓰는 이유가 있을까요? 각각은 어떻게 다르고 장단이 있나요. 미리 감사합니다.

  • spring
  • tdd
  • jpa
  • 소프트웨어-테스트
  • unittest
highjune 댓글 1 좋아요 0 조회수 222

프로젝트 코드는 제공해주시지 않는건가요?

미해결

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

안녕하세요? 강의 잘 듣고 있습니다 강의보면서 코드를 따라치고 싶은데, 코드는 따로 제공되지 않는건가요?

  • spring
  • tdd
  • jpa
  • 소프트웨어-테스트
  • unittest
댓글 2 좋아요 0 조회수 406

MSA 환경에서의 Rest Docs 구성 환경 설정에 대한 문의

미해결

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요! 모든 강의 수강하였고, 강의 내용을 기반으로 기존 작업한 프로젝트에 리팩토링을 진행하고 있습니다. 진행한 프로젝트는 MSA 기반으로, Swagger 를 사용하여 진행하였습니다. 서비스가 나눠져 있어, 각 서버별로 독립적인 문서를 가지고 있고, 개발자가 각 서버에 접근을 해야하는 문제가 있었습니다. 따라서 기존에는 Getway Server에 Swagger를 띄우고 각 서버를 discovery 서버에서 받아와서 api 호출을 통해 문서를 받아오게 하여 gateway에서 전체 문서를 열람 가능하게 하였습니다. 위와 같은 환경에서 동일하게, 단일 진입점으로 활용할 서버에 docs 설정을 통해 각 서버의 API 문서를 받아올 수 있게 구성하면 될까요? 아니면, 다른 방법이 있을까요? 현업에서 어떻게 구성하시는지 궁금합니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
BeakGwa 댓글 2 좋아요 0 조회수 248

테스트 코드 createOrderWithStock 로그에 관하여

미해결

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요 강사님. 테스트코드의 @Transactional은 마지막에 rollback을 하기 때문에 dirty checking을 하지 않고, 이로 인하여 update쿼리가 전송되지 않을것이라 생각했습니다. 하지만 로그에는 update stock set created_date_time=?, modified_date_time=?, product_number=?, quantity=? where id=? Hibernate: update stock set created_date_time=?, modified_date_time=?, product_number=?, quantity=? where id=? 이처럼 quantity를 변경한것에 대한 update쿼리가 전송되었습니다. 이 부분에 대해서 찾아본 결과 "테스트 코드 마지막에서 stockRepository.findAll() 을 통해 stock을 전체 조회할때, select쿼리가 db에 직접 날라가기 때문에 select쿼리가 수행되기전 flush()로 인하여 update쿼리가 날아갔다." 라고 이해했습니다. 제가 이해한 내용이 맞을까요?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
부자가될거야 댓글 2 좋아요 0 조회수 210

테스트 데이터 관련 질문입니다.

미해결

내 마음대로 되지 않는 백엔드 테스트코드 - 희망편 & 현실편

게시글과 게시글 카테고리가 존재해야만 댓글을 작성할 수 있는 구조에서, 다음과 같은 시나리오를 테스트하고자 합니다. 사용자가 댓글을 10개 작성하면 뱃지가 발급되는 시나리오를 테스트하려고 합니다. 댓글을 작성하려면 게시글과 게시글 카테고리가 먼저 저장되어 있어야 하며, 댓글에는 post_id 가, 게시글에는 post_category_id 가 각각 존재합니다. 이 상황에서 다음 질문이 있습니다: 댓글에 있는 post_id 와 게시글에 있는 post_category_id 를 nullable 하게 설정해도 괜찮을까요?

  • node.js
  • 소프트웨어-테스트
  • backend
dlkfjan 댓글 1 좋아요 0 조회수 173

개선된 아키텍처의 구조

미해결

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

많은 도움을 얻어가는 취준생입니다. 다름아니라 본 영상( 레이어드 아키텍처의 문제점과 해결책) 9분30초의 구조는 DDD라고 볼 수 있나요? 감사합니다.

  • spring
  • tdd
  • jpa
  • 소프트웨어-테스트
  • unittest
Bax 댓글 1 좋아요 0 조회수 286

인기 태그

인프런 TOP Writers

주간 인기글