작성
·
348
0
MemberServiceV3_3Test 테스트중
@Transactional 어노테이션을 쓰기위해
@SpringBootTest 어노테이션을 추가 시키는것 까지 이해는 했는데
(06:30 참고)
그 이후 이전 코드의 @BeforeEach 코드를 지우셨습니다.
(직접 주입)
그이후에 @TestConfiguration 을 추가해주셨는데
왜 꼭이렇게 빈을 주입해야 하나요 ?
( [MemberRepositoryV3, MemberServiceV3_3] << 이 두 객체를 @Autowired하지않고 이전 @BeforeEach로 사용했지만 안됌) - DataSource, PlatformTransactionManager 두 객체는 @Bean 설정 그 이후 테스트 실패.
결론적으로 MemberRepositoryV3,MemberServiceV3_3 이 둘 클래스도 왜 @TestConfiguration로 빈으로 주입해야 정상작동 하나요 ??
실패한 코드
===================================
@BeforeEach
void before(){
memberRepository = new MemberRepositoryV3(TestConfig.dataSource());
memberService = new MemberServiceV3_3(memberRepository);
}
@TestConfiguration
static class TestConfig{
@Bean
static DataSource dataSource(){
return new DriverManagerDataSource(URL, USERNAME, PASSWORD);
}
@Bean
PlatformTransactionManager transactionManager(){
return new DataSourceTransactionManager(dataSource());
}
}