inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

재고시스템으로 알아보는 동시성이슈 해결방법

재고감소 로직작성

테스트 코드에서 매번 1번 유지

514

Louie(루이)

작성한 질문수 16

0

테스트 코드에서 매번 stock id 1번으로 조회하는데 이게 어떻게 가능한건가요?

저의 경우 1번 객체가 없어서 에러를 처리합니다.

java spring 동시성

답변 2

1

최상용

min102 님 안녕하세요.
강의에서는 jpa 의 설정을 활용하여 재시작시 테이블을 모두 재생성합니다.
그로인해 비어있는 테이블에 데이터를 1개만 생성해주게 되니 1번으로 고정이 가능한 것입니다.

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.

테스트 코드에서 매번 stock id 1번으로 조회하는 방법은 여러 가지가 있을 수 있어요. 여러 방법 중에 하나는 테스트 코드에서 stock id를 하드코딩하는 방식일 수 있습니다. 예를 들어, 테스트 코드에서 항상 findStockById(1)과 같이 stock id를 1로 고정하여 조회한다면 매번 1번 객체가 반환될 것입니다.

하지만 만약 1번 객체가 없어서 에러가 발생한다면 테스트 데이터를 미리 생성하거나, Mock 객체를 사용하여 테스트를 진행할 수도 있습니다. 테스트 데이터를 미리 생성한다면 1번 객체가 존재하게 됩니다. Mock 객체를 사용한다면, 특정 메서드가 호출되었을 때 원하는 값을 반환하도록 설정할 수 있습니다. 이렇게 하면 테스트 코드에서는 항상 1번 객체를 조회하는 것처럼 동작하면서 실제 데이터가 없어도 에러를 처리할 수 있게 됩니다.

만약 위의 방법들로 문제를 해결할 수 없다면, 테스트 대상의 코드에서 조회할 객체의 기본값을 1번으로 설정하여 항상 1번 객체가 존재하도록 만들어 볼 수도 있습니다.

더 구체적인 상황을 알려주시면 더 도움을 드릴 수 있을 것 같아요. 어떤 방법을 사용하셨는지 알려주시면 더 자세한 도움을 드릴 수 있을 것 같아요.

레디선 테스트코드에서 채널이름은 없어도 되는건가요?

0

43

2

낙관적 락을 사용할 떄 차이점

0

121

2

동시성 검증 코드에 관한 문의

0

95

2

단일연산

0

70

2

낙관적락vs. 레디스락

0

108

2

안녕하세요. 레디슨 질문있습니다..!!

0

67

2

@Lock(OPTIMISTIC)이 필요한 이유

0

90

2

get_lock 의 timeout이 3000초 이던데 너무 긴거 아닌가요?

0

132

2

DataSource Hikari 사용 이유

0

147

2

saveAndFlush 사용 이유 문의

0

113

3

비관적 락 VS 네임드 락

0

160

3

application.yaml 에 redis 정보

0

100

2

왜 클래스 이름에 Facade 가 붙나요?

0

185

2

@Transactional 으로 인한 동시성 문제 발생 원인이 궁금합니다.

0

219

2

@modifying 이용한 동시성 제어

0

168

2

DB락과 분산락

0

262

2

NamedLock 테스트 실패

0

186

2

테스트에서 트랜잭션 어노테이션 질문 있습니다.

0

173

2

optimistic Lock 재시도 질문입니다.

0

232

2

낙관적 락 테스트 실패

0

241

2

오류?

0

1627

4

LettureLockStockFacadeTest에서 오류가 발생합니다.

1

268

2

Pessimistic Lock 전체 테스트 오류 문의

0

360

3

비관적 락 vs 레디스(Lettuce)락 비교 관련 질문

0

460

2