inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

Order에서 orderProducts 테스트하는 방법이 궁금합니다.

미해결

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

package sample.cafekiosk.domain.order; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.test.context.ActiveProfiles; import sample.cafekiosk.domain.product.Product; import sample.cafekiosk.domain.product.ProductRepository; import sample.cafekiosk.domain.product.ProductSellingStatus; import sample.cafekiosk.domain.product.ProductType; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; import static org.assertj.core.groups.Tuple.tuple; import static sample.cafekiosk.domain.product.ProductSellingStatus.*; import static sample.cafekiosk.domain.product.ProductType.HANDMADE; @ActiveProfiles("test") @DataJpaTest class OrderRepositoryTest { @Autowired private OrderRepository orderRepository; @Autowired private ProductRepository productRepository; @DisplayName("원하는 날짜와 주문 상태로 주문들을 가져온다.") @Test void findOrdersBy() { //given LocalDateTime registeredDateTime1 = LocalDateTime.of(2024, 3, 2, 12, 0); LocalDateTime registeredDateTime2 = LocalDateTime.of(2024, 3, 9, 12, 0); Product product1 = createProduct(SELLING, HANDMADE, "아메리카노", 4000, "001"); Product product2 = createProduct(HOLD, HANDMADE, "카페라떼", 4500, "002"); Product product3 = createProduct(STOP_SELLING, HANDMADE, "팥빙수", 7000, "003"); List<Product> products = List.of(product1, product2, product3); productRepository.saveAll(products); Order order1 = createOrder(registeredDateTime1, products); Order order2 = createOrder(registeredDateTime2, products); List<Order> orders = List.of(order1, order2); orderRepository.saveAll(orders); //when LocalDate findDate = LocalDate.of(2024, 3, 2); List<Order> findOrders = orderRepository.findOrdersBy(findDate.atStartOfDay(), findDate.atStartOfDay().plusDays(1), OrderStatus.PAYMENT_COMPLETED); //then Assertions.assertThat(findOrders).hasSize(1) .extracting("registeredDateTime", "orderProducts", "orderStatus") .containsExactlyInAnyOrder( tuple(registeredDateTime1, products, OrderStatus.PAYMENT_COMPLETED) ); } private Order createOrder(LocalDateTime registeredDateTime1, List<Product> products) { return Order.builder() .orderStatus(OrderStatus.PAYMENT_COMPLETED) .registeredDateTime(registeredDateTime1) .products(products) .build(); } private Product createProduct(ProductSellingStatus sellingStatus, ProductType type, String name, int price, String productNumber) { return Product.builder() .productNumber(productNumber) .type(type) .sellingStatus(sellingStatus) .name(name) .price(price) .build(); } } 안녕하세요. 우빈님 OrderRepository의 findOrdersBy() 테스트는 직접 작성하라고 하셔서 테스트를 작성하다가 궁금한 점이 생겨 질문 남깁니다. 첫 번째는 Order의 orderProducts를 테스트할 때, products가 프록시 객체로 넘어와서 테스트하지 못하는 거 같습니다. 현재 코드는 테스트가 실패하는 코드고, extracting에서 "orderProducts"를 제외하면 성공하는 테스트가 됩니다. 이럴 때는 어떻게 해결해야 할지 궁금합니다. 두 번째 질문은 제가 작성한 테스트 코드 구조에서 개선할 사항이 있는지 궁금합니다. 강의 잘 보고 있습니다. 감사합니다.

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

JPA 강의 듣는 중에 알수 없는 오류가 발생합니다..ㅠㅠ

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] ============================ CONDITIONS EVALUATION REPORT ============================ Positive matches: ----------------- None Negative matches: ----------------- None Exclusions: ----------- None Unconditional classes: ---------------------- None IllegalStateException error가 발생합니다. https://drive.google.com/file/d/1Qk1diQlnWXRZlcdPBcbrTs_1Zctp2BdA/view?usp=sharing

  • java
  • spring
  • mvc
  • spring-boot
Smith 댓글 1 좋아요 0 조회수 744

맥os) python3.11.8 / VScode에서 파이썬인터프리터 설치 오류

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

안녕하세요, 맥os에서 python3.11.8를 설치하였으며, VScode에서 addson까지 잘 인스톨하였습니다. 그러나 그 다음순서인 python interpreter가 설치되지 않아 진도를 아예 못 나가고 있습니다. 파이썬은 여러번 버전을 바꾸어가며 재설치를 해보았는데, 아직도 문제는 그대로입니다. 인터프리터가 설치되지 않는 이유가 무엇일까요?

  • python
  • interpreter
suadkim 댓글 1 좋아요 0 조회수 343

혹시 노션으로 작성중인 강의 내용이...?

해결됨

Go Hard to Unreal Engine

노션 페이지 강의 내용을 따로 공유해주셨나요? 아니면 그냥 보고 그대로 따라가면 되는 것이겠죠?

  • unreal-engine
  • 언리얼-c++
빠타박스 댓글 1 좋아요 0 조회수 479

애니메이션 export 안 될때

미해결

Three.js로 시작하는 3D 인터랙티브 웹

gltf 파일로 export 할때 강의에서는 mesh만 선택하고 export 하던데, 그랬더니 애니메이션 객체가 전혀 없었습니다. mesh뿐만 아니라 amature(뼈대)도 함께 선택하니(그냥 a로 전부 선택)하니 애니메이션 객체도 생겼고, 애니메이션 잘 되네요. 블렌더 버전이 올라가면서 그렇게 동작이 바뀐것이 아닐까요? 제가 쓰는 블렌더 4.0.2 three.js 0.162.0

  • blender
  • 인터랙티브-웹
  • three.js
박성현(spock.p) 댓글 1 좋아요 0 조회수 593

2-I 문제

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

http://boj.kr/5a5b03f202154898a9edff9a950a5e30 이렇게 풀어봤는데 왜 틀렸을까요? 출력은 같게 나오는데..

  • c++
  • 코딩-테스트
Eunwoo 댓글 1 좋아요 0 조회수 148

(넓고 얇게 외워서 강의)의 컴퓨터가 연산하는 과정 5분56초에서 이해가 안되요..

해결됨

넓고 얕게 외워서 컴공 전공자 되기

1바이트 === 8비트이고 32비트가 2^32 이고 4바이트이고 2^32이 42억 9천만 인거까지 알수 있는데, 강의 내용은 2^32가 42억9천만 바이트가 되는 부분이 이해가 안되요.. 단위가 왜 여기서 바이트 인지 이해가 안됩니다..

  • 운영체제
강현규 댓글 2 좋아요 1 조회수 423

[모던웹페이지 만들기9](1:40)class-desc 카드부분관련

미해결

풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]

안녕하세요. 쉽고 자세한 설명해주셔서 즐겁게 잘 듣고 있습니다. 여기까지는 잘 따라왔는데요. 실행시 화면상에 약간의 차이가 있는 부분이 생겨서 문의드립니다. class-container 부분을 하고 있는데요. 코드는 강사님 내용이랑 동일한데 화면상에서 보이는 카드화면 부분이 제 화면에서는 좁게 나와서요. [강사님화면] [제 화면] 혹시나 코드가 뭐라도 다른 가 해서 전체적으로 살펴보았고, 또 혹시나 해서 강사님 강의자료 ( 05_roadmap_section ) 의 index.html로 golive로 구동을 해보았습니다만. 동일하게 좁은 상태인데... .class-card 폭은 240px 고정이고요. .class-card { width : 240px; /* 요런 건 사이즈를 픽스하는 게 좋다 */ /* box-shadow: 블럭에 그림자를 적용하는 CSS 기능 https://developer.mozilla.org/ko/docs/Web/CSS/box-shadow offset-x | offset-y | blur-radius | spread-radius | color */ box-shadow: 10px 10px 10px -5px rgba(25, 42, 70, 0.2); border-radius: 8px; margin: 0 10px; } 개발자 모드로 확인시에도 폭이 240px 이고... 혹시 pc의 해상도에 따라서 다른 걸까요?? 이걸 확인을 어떻게 해야 할 지 모르겠습니다. ㅡㅡ;

  • HTML/CSS
  • javascript
  • es6
류재안 댓글 2 좋아요 0 조회수 273

findNoticeByDates 실행 에러

미해결

백엔드 개발자 성능 개선 초석 다지기

인덱싱 ngrinder 성능테스트를 하기 위해서 findNoticesByDates에서 dates?startDate=2023-01-15%2000:00:00&endDate=2023-02-14%2023:59:59로 파라미터 값을 넘기는 과정에서 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.performancecache.mapper.NoticeReadMapper.findNoticesByDates가 발생하는데 혹시 NoticeReadMapper.xml에 따로 설정을 해줘야 하는건지 아니면은 강의를 따라가며 제가 놓친 부분이 있는건지 궁금합니다 해결방법도 같이 질문드립니다!

  • java
  • mysql
  • spring-boot
  • cache
  • index
JongWon Kim 댓글 2 좋아요 1 조회수 264

javax.transaction.Transactional 질문

해결됨

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

안녕하세요. javax.transaction.Transactional annotation에 대해 추가 질문드립니다. @Transactional annotation은 총 2가지가 있습니다. Spring에서 제공: org.springframework.transaction.annotation.Transactional Java에서 제공: javax.transaction.Transactional 강의에서는 spring에서 제공하는 annotation을 사용으로 추천해주셨고, 대부분 org.springframework.transaction.annotation.Transactional으로 사용을 하더라구요. 직접 찾아본 바로는 두가지 모두 트랙잭션 자체에 대한 동작은 동일하지만, spring에서 제공하는 Transactional이 더 많은 부가 기능을 가지고 있어 사용을 권장한다고 하네요. 이렇게 이해하고 넘어가면 될까요?! 의견이 궁금해서 질문드립니다.

  • spring
  • mvc
  • spring-jdbc
슈행 댓글 1 좋아요 1 조회수 418

슬랙 초대 부탁드립니다 :)

해결됨

코딩은 실전이다! - Git알못을 위한 깃린이코스(Git, Github 실습위주)

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. wjl0831@gmail.com

  • git
  • github
  • 버전관리시스템
wjl0831 댓글 1 좋아요 1 조회수 304

익셉션 모델을 이용한 하이퍼바이저를 구현 질문

미해결

Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]

안녕하세요. 익셉션 모델을 이용해서 하이퍼바이저를 구현하는 방식말고 다른 방법,모델로 하이퍼바이저를 구현하는 방법이 더 있는지 문의드립니다. 익셉션 모델을 이용해서 하이퍼바이저를 구현한다라는 포괄적인 의미가 잘 이해되지 않아서 이런 질문이 발생한 것 같습니다. 감사합니다.

  • 가상화
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • xen
  • hypervisor
  • armv8
토끼야놀자 댓글 1 좋아요 0 조회수 276

Limit Range, Resource Quota

미해결

대세는 쿠버네티스 (초급~중급편)

단일 네임 스페이스에 resource quouta와 limit range 둘 다 적용 가능한 것으로 이해했습니다 그렇다면, 둘 다 적용하는 경우가 있나요? 뭔가 둘 다 적용하면, 네임스페이스에 걸린 제약들을 이해하는데 복잡해지는 것 같아서 질문 드립니다

  • docker
  • kubernetes
daniel 댓글 1 좋아요 1 조회수 146

join(val) 코드 해석

해결됨

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

챕터명: [응용] 엑셀문서 값을 필드에 입력하기 # 셀범위 값 전부 읽어오기 xlsx_values = [list(i) for i in ws.UsedRange()] # 날짜 문자열 수정하기 for idx, val in enumerate(xlsx_values): if idx: # [0]은 제목이므로 생일 수정안함 xlsx_values[idx][2] = xlsx_values[idx][2].strftime("%Y년 %#m월 %#d일") print(xlsx_values) # >>> [['이름', '성별', '생일', '취미'], # ... ['마크', '남', '1984년 5월 14일', 'VR'], # ... ['빌', '남', '1955년 10월 28일', '기부'], # ... ['일론', '남', '1971년 6월 28일', '트위터'], # ... ['제프', '남', '1964년 1월 12일', '독서'], # ... ['리사', '여', '1969년 11월 7일', '게임'], # ... ['슬아', '여', '1983년 6월 16일', '쇼핑']] # 1페이지 복사해 둠 hwp.Run("CopyPage") for idx, val in enumerate(xlsx_values[1:]): if idx: # idx가 0인 경우는 제외 hwp.Run("PastePage") # 페이지 붙여넣기 hwp.PutFieldText(f"이름{{{{{idx}}}}}\x02성별{{{{{idx}}}}}\x02생일{{{{{idx}}}}}\x02취미{{{{{idx}}}}}", "\x02".join(val)) # 4개의 값을 한 번에 배치삽입하는 방법. "\x02"로 구분함. 위 코드에서 hwp.PutFieldText(f"이름{{{{{idx}}}}}\x02성별{{{{{idx}}}}}\x02생일{{{{{idx}}}}}\x02취미{{{{{idx}}}}}", "\x02".join(val)) 이 부분이 이해가 잘 안됩니다. hwp.PutFieldText("이름", "홍길동") 이게 기본 형태로 알고 있는데, 저건 어떤 형태인가요?? 해석이 안되네요 idx가 1인 경우에 대입하면, hwp.PutFieldText("이름{{1}} 성명{{1}} 생일{{1}} 취미{{1}}") 이렇게 있는데, 이름{{1}} 뒤에 1을 더하는 식으로 각 필드명에 적용한다는 건가요?? 그리고 마지막 join(val)은 무슨 역할인가요???

  • python
  • 한컴오피스
이형주 댓글 2 좋아요 2 조회수 341

노션 공유

해결됨

코딩테스트 [ ALL IN ONE ]

노션 공유 해주셨다고 했는데 cng121958@gmail.com 으로 다시 공유해주실 수 있나요? 공유가 아직 안된 것 같습니다..

  • python
  • 코딩-테스트
  • 알고리즘
김유진 댓글 1 좋아요 1 조회수 236

lower exception level 핸들러 질문

미해결

Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]

다음 두가지중에 어떤 것이 맞는지 문의드립니다. 1. wfe, wfi, hvc를 이용해서 guest exit을 했을때 익셉션이 발생하면 synchronous 익셉션 주소로 분기 2. wfe, wfi, hvc를 이용해서 guest exit을 하면 무조건 synchronous 익셉션 주소로 분기

  • 가상화
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • xen
  • hypervisor
  • armv8
토끼야놀자 댓글 1 좋아요 0 조회수 233

익셉션 벡터 테이블 질문

미해결

Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]

안녕하세요. 강의 내용을 다음과 같이 이해했는데 맞는지 문의드립니다. "현재 하이퍼바이저 모드(EL2)가 동작하는 시스템인데, 게스트 OS 커널(EL1)에서 Synchronous 익셉션이 발생하면 VBAR_EL2 + 0x400 으로 PC를 설정한다" 감사합니다.

  • 가상화
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • xen
  • hypervisor
  • armv8
토끼야놀자 댓글 1 좋아요 0 조회수 202

qsort 함수에 관한 질문입니다.

해결됨

독하게 시작하는 C 프로그래밍

stdlib에서 제공하는 qsort 함수 qsort(void base, size_t width, int(*compare)(const void* key, const void* element)) 에서 compare부분이 비교함수를 가리키는 함수 포인터라고 알고있습니다. 그렇다면, qsort(aList, 5, sizeof(int), *myCompare); 같이 넣지 않고 qsort(aList, 5, sizeof(int), myCompare); 처럼 넣는 이유가 뭔가요?

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
davidkjcy 댓글 2 좋아요 0 조회수 220

불균형 데이터 처리의 문제

미해결

[핵집] 2025 빅데이터 분석기사(필기)_과목 1~2

출제자의 눈_2과목(1) 강의를 보면, 2) 불균형 데이터를 그대로 사용하여 모델링할 경우 모델의 정확도가 떨어질 수 있음 위와 같이 기술되어 있고, 강사님 또한 그렇게 설명하고 있습니다. 그러나 2과목 주요 문제 해설 강의를 보면, "불균형 문제를 해결하지 않으면 모델은 ...(중략)... 정확도(Accuracy)가 높아지고, 재현율(Recall)은 낮아짐" 이렇게 설명되고 있습니다. 저는 위 내용이 상반된다고 생각하는데요, 이에 대하여 추가 설명 부탁합니다. 감사합니다.

  • 빅데이터
  • 불균형데이터
Hongjin 댓글 2 좋아요 0 조회수 304

인기 태그

인프런 TOP Writers

주간 인기글