묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Practical Testing: 실용적인 테스트 가이드
addSeveralBeverages() 경계값 테스트
CafeKiosk add()는 count 0이 경계값이라 0과 1로 테스트를 만들어야 할거 같은데addSeveralBeverages() test에서는 count 2로 2개다 아메리카노로 add되었는지 확인하셔서 문의드립니다 실무라고 가정하면 count 0, 1, 2이상 값 3가지 경우로 test 작성해야하는 건가요??
-
미해결Practical Testing: 실용적인 테스트 가이드
테스트를 위한 메소드를 작성해도 괜찮은건가요?
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요.안녕하세요 선생님. 강의 정말 재밌게 잘 듣고 있습니다. 이번 강의에서는 실제 비즈니스 로직으로 사용 될 createOrder() 로직을 작성하고 오로지 test 를 위한createOrder(LocalDateTime currentDateTime) 메소드를 추가로 작성하였는데 이처럼 오로지 테스트를 위한 메소드를 작성해도 괜찮은 것인지 궁금해서 질문을 남겨봅니다 ! 다른 개발자라면 처음 봤을 때, 같은 이름의 메소드가 두개라서 만약 해당 메소드를 호출하는 경우 직접 코드를 확인해봐야 하는 불편함이 있을 것 같은데 이런 경우 어떻게 해결하나요??
-
해결됨Practical Testing: 실용적인 테스트 가이드
만료되었는지 확인하는 메서드 검증
유익한 강의 만들어주셔서 감사합니다. 무분별하게 FakeRepository를 만들면서 실제 프로덕션 코드에서 작동하는것과 똑같이 내가 FakeRepository를 만들었을 거란 확신이 없이 테스트를 작성하던 와중에 이 강의를 보고 좀 깨우친 바가 많았습니다.해당 강의를 듣다가 이 케이스에서는 어떻게 검증하기 쉽도록 개선해볼 수 있을까 해서 질문드립니다.인증 코드라는 도메인 객체가 있습니다. 인증코드는 만료시간이라는 속성을 가지고 있고, isExpired()라는 메서드를 통해 해당 인증코드가 만료되었는지 확인할 수 있습니다.public boolean isExpired() { return LocalDateTime.now().isAfter(expirationTime); }강의를 듣기 전에는 이런 식으로 작성했습니다. 그런데 이런 식으로 작성하니 테스트 코드를 짜려고 하면 Fixture 설정 시 LocalDateTime.now()를 사용해서 만료일자를 설정해야 한다는 생각이 듭니다. 이런 경우에도 만료되었는지 검증할 수 있는 시간을 파라미터로 받도록 리팩토링해주는 것이 맞을지 궁금합니다!
-
해결됨Practical Testing: 실용적인 테스트 가이드
패키지 구조에 대한 질문
안녕하세요 강의에서는 패키지 구조를 api 아래에 api - service - productapi - controller - product 이렇게 구현하셨는데이렇게 구현하면 도메인이 많아지면 가독성이 떨어질 것 같아서 각 도메인마다 service, controller를 가지게 하는 구조는 어떻게 생각하시나요? api - product - service, controller가독성보다 더 중요한 장점이 있을까요?실무에서는 어떻게 하시는지 궁금합니다. 감사합니다~!
-
해결됨Practical Testing: 실용적인 테스트 가이드
서비스 계층 통합테스트
안녕하세요강의 잘 보고 있습니다! 수업에서 서비스 계층을 테스트하실 때,@SpringBootTest를 이용해서 Repository 계층의 빈을 등록하고 주입받아서 사용하고 있습니다. 서비스 계층을 mock을 이용해 단위테스트로 하시지 않고 Repository 계층을 통합해서 사용하는게 많이 사용하는 방식인가요?실제 현업에서는 Service 계층을 어떻게 테스트 하는 지 궁금합니다. (단위테스트or 통합테스트)
-
해결됨Practical Testing: 실용적인 테스트 가이드
단위테스트의 개념에 대해서 질문 드립니다!
안녕하세요! 테스트 강의가 드문데 정말 친절하게 잘 알려주셔서 감사하게 듣고 있습니다 :)아직 강의를 다 들은 것은 아니지만 강의 내용 중 궁금한 것이 있어 질문 드립니다.제가 테스트를 제대로 공부해본 적이 없어 혼자서 독학을 하며 공부했던 단위테스트는 주로 Mock과 항상 연관지어 설명이 되어 있었습니다. 통합테스트(@SpringBootTest)는 스프링 컨테이너를 띄우고 bean으로 등록된 모든 빈을 가지고 테스트를 하는 것인데 반해, 단위테스트는 해당 계층(Layer)을 테스트할 때 꼭 필요한 bean만 가지고 와서 최소 단위(메서드나 클래스)로 테스트를 진행한다고 저는 알고 있었습니다.그래서 예를 들어 Service 계층 테스트를 진행할 때면 Repository에 관련된 bean들은 Mockito 등을 사용해서 Mock을 만들고 InjectMocks를 해준다는 식으로 저는 공부를 하고 테스트 코드를 작성한 경험이 있습니다.그런데 오늘 강의에서 강사님이 설명해주시는 내용을 듣다보니 @SpringBootTest 와 같은 어노테이션과 상관없이 단위테스트를 진행하시는 것 같다는 인상을 받았습니다. Order에 대한 테스트를 진행하실 때도 단위테스트라는 언급을 하셨고, OrderSerivice에 대한 테스트를 진행하실 때도 @SpringBootTest를 사용하고 있지만 단위테스트를 하신다고 표현을 하시더라구요.혹시 통합테스트와 단위테스트를 구분하는 강사님만의 방법이 있는 것인지 궁금합니다! 장문 글 읽어주셔서 감사합니다!
-
해결됨Practical Testing: 실용적인 테스트 가이드
글자를 크게 보는 방법이 없을까요?
강사님께서 올려주신 영상의 코드 폰트가 너무 작습니다..30분 정도 봤는데, 눈이 너무 아픕니다..ㅠㅜ다른 강의 보면서 작다고 느낀적은 한번도 없는데혹시, 녹화한 강의를 크게 보는 방법이 없을까요?
-
미해결스프링 기반 REST API 개발
junit5 에서의 spring-restdoce 설정
junit5 환경에서 테스트 중에 REST Docs configuration not found. Did you forget to apply a MockMvcRestDocumentationConfigurer when building the MockMvc instance? 오류가 발생 하여 찾아 보던중 @ExtendWith({RestDocumentationExtension.class, SpringExtension.class}) public class JUnit5ExampleTests { 이렇게 진행 하라는 가이드가 확인 되어 @SpringBootTest @AutoConfigureMockMvc //@AutoConfigureRestDocs @ExtendWith({RestDocumentationExtension.class, SpringExtension.class}) public class EventControllerTests { 위와 같이 설정 하고 @BeforeEach public void setup(WebApplicationContext webApplicationContext, RestDocumentationContextProvider restDocumentation) { this.mockMvc = MockMvcBuilders.webAppContextSetup(ctx) .addFilters(new CharacterEncodingFilter("UTF-8", true)) // 필터 추가 .apply(documentationConfiguration(restDocumentation)) .build(); } setup 추가 하여 진행 하였습니다. 혹시 다른 확인사항이나 @AutoConfigureRestDocs 이 적용이 안되는듯 한데 이게 적용이 안되면 다른 문제가 있는걸까요? junit4 에서 junit5 로 변경 될때 설정 사항은 링크 에서 확인 가능 합니다 https://docs.spring.io/spring-restdocs/docs/current/reference/html5/#getting-started-documentation-snippets-setup