@DisplayName("파라미터 테스트") @ParameterizedTest(name = "{index} {displayName} message={0}") @ValueSource(ints = {10, 20, 40}) void parameterizedTest(Study study){ System.out.println(study.getLimit()); } Junit5 테스트 반복하기 2부에서 이 부분 질문드리려 합니다. 강의에서는 Study 타입으로 받아서 객체를 생성하고 getLimit으로 값 가져오는 것까지 묵시적으로 진행이 잘 되었습니다만, 제 환경에서는 ```java Error converting parameter at index 0: No built-in converter for source type java.lang.Integer and target type com.example.testpractice.Study org.junit.jupiter.api.extension.ParameterResolutionException: Error converting parameter at index 0: No built-in converter for source type java.lang.Integer and target type com.example.testpractice.Study at java.base/ java.util.stream .ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at java.base/ java.util.stream .ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/ java.util.stream .ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/ java.util.stream .ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/ java.util.stream .ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at java.base/ java.util.stream .ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/ java.util.stream .ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at java.base/ java.util.stream .ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ``` 와 같은 에러가 발생해서 Junit이나 JDK의 버전에 따라 스펙이 바뀌었는지 궁금해져서 질문드립니다
안녕하세요. 올려주시는 강의 잘듣고 도움 많이 받아 항상 감사드립니다. @Transactional의 isolation, propagation 옵션에 대한 공부를 위한 학습 테스트를 작성해보고 싶은데요. (실제 업무에서도 동시성과 관련된 테스트 커버리지를 향상시키고 싶습니다) 두 개의 쓰레드가 하나의 인스턴스에 동시에 접근하는 케이스에 대한 테스트를 작성하고 싶습니다. TransactionManager를 직접 핸들링하는건 올바른 방법은 아닐 것이라고 생각하는데, 테스트 코드 작성 단계에서 동시성 테스트를 지원하는 기능이 있을까요? JUnit5나 Mockito 라이브러리만을 활용해서 해결할 수 있는 방법이 있을지 궁금하여 질문드립니다!
안녕하세요. 기선님 테스트 코드 작성은 처음이라 강의를 들으며 해보고 있는 수강생 입니다 ! 다름이 아니라 throw 부분에 ioException이나 sqlException을 실행시키고 싶은데 에러엔 org.mockito.exceptions.base.MockitoException: Checked exception is invalid for this method! 이렇게만 뜨더라구요 근데 runtime 익셉션은 정상적으로 실행되는 걸 보면서 thenthrow는 unchecked 익셉션만 가능한건지 궁금증이 생겼습니다. 혹시 ioException이나 sqlException 처럼 checked 익셉션을 실행하고 싶으면 어떻게 하면 좋을까요? 사정상 코드의 내용을 상세히 첨부할 수 없지만 대략적으로 올려봅니다 @DisplayName("3. 실패 : DB insert 오류") public void 실패_DB_insert_오류() { //given //특정 객체 생성 when(특정 서비스).thenThrow(new sqlException()); //then - 실패 결과 assertThrows(sqlException.class, () -> { log.info("!! DB insert 오류 !! "); //when - 프로세스가 진행 }); // verify를 통해 해당 프로세스 최소 1번 호출 되었는지 확인 verify(kosService,atLeastOnce()).특정 서비스); }
어느 버전부터인지는 모르겠으나 postgres_password가 설정되지 않으면 컨테이너가 띄워지지 않네요. GenericContainer 에 POSTGRES_PASSWORD 설정을 주거나 POSTGRES_HOST_AUTH_METHOD 에 trust 속성을 주면됩니다! 개발 환경은 윈도우 10에 spring boot 2.4.0, testcontainer 1.15.0 입니다