단위 테스트시, 스프링 컨테이너에 등록된 Bean 사용 방법
498
4 asked
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
안녕하세요 스프링 강의 듣는 도중 질문 사항이 생겨서 문의 드립니다.
보통 단위테스트를 진행할 때, 테스트에 필요한 객체들을 주입해서 사용하는 것이 아니라, 객체를 따로 생성해서 테스트를 하는데, 그런게 아니고 직접 의존 관계를 주입해서 바로 테스트할 수는 없는건가요?
예를들면,
public class DbConTest {
DBConnection dbConnection;
@Test
void dbConTest() throws SQLException {
HikariDataSource dataSource = new HikariDataSource();
dataSource.setJdbcUrl("jdbc:mariadb://localhost:9898/dddddd");
dataSource.setUsername("root");
dataSource.setPassword("root");
dbConnection = new DBConnectionImpl(dataSource);
dbConnection.dbconnection();
}
}이렇게가 아닌,
public class DbConTest {
private final DBConnection dbConnection;
private final DataSource dataSource;
public DbConTest(DBConnection dbConnection, DataSource dataSource) {
this.dbConnection = dbConnection;
this.dataSource = dataSource;
}
@Test
void dbConTest() throws SQLException {
dbConnection.dbconnection();
}
}이렇게요!!
Answer 1
0
@TestConfiguration을 사용해서 따로 Bean으로 등록하고 사용하니 잘되네요!
저는 DataSource같은거는 자동으로 Bean으로 등록되어서, 따로 등록해주지 않아도 되는줄 알았는데 아니었네요 혹시 또 다른 방법이 있으면 알려주시면 감사하겠습니다!
@SpringBootTest
public class DbConTest {
private final DataSource dataSource;
private final DBConnection dbConnection;
@Autowired
public DbConTest(DataSource dataSource, DBConnection dbConnection) {
this.dataSource = dataSource;
this.dbConnection = dbConnection;
}
@TestConfiguration
static class TestConfig {
private final DBConnection dbConnection;
private final DataSource dataSource;
public TestConfig(DBConnection dbConnection, DataSource dataSource) {
this.dbConnection = dbConnection;
this.dataSource = dataSource;
}
}
@Test
void dbConTest() throws SQLException {
dbConnection.dbconnection();
}
}
spring initialiser 어떤걸 선택해야될지 모르겠어요
0
31
2
트랜잭션 템플릿이 체크예외는 커밋하는 이유가 궁금합니다.
0
51
1
jdbc 학습하다 궁금해서 질문드려요
0
82
1
정상이체와 이체중 예외발생 차이
0
68
2
이번 강의부터가 JDBC 직접 사용 맞나요?
0
88
1
순수한 서비스 계층에 대한 의문???
0
82
2
3_4test, 4test 자동 리소스 안됨
0
58
2
데이터베이스 선택 관련 질문.
0
68
2
after 메서드 사용 유무
0
57
2
데이터베이스 접근 및 DB 락
0
55
1
@SpingBootTest, @TestConfiguration
0
56
1
Read Committed 격리 수준 사용 관련 질문
0
48
1
AopCheck Test 부분의 EnhancerBySpring 확인 법??
0
66
2
커리큘럼 관련 질문
0
76
1
서비서 계층 스프링 프레임워크 사용
0
87
1
validation(toMember)의 위치
0
83
2
데이터 계층에서 서비스 로직의 datasource를 인식하는 방법
0
165
2
member 상수 질문
0
120
2
ctrl + F6 이후로 con 인식이 안 됩니다
0
153
2
DrivenManager 와 Connection 반환에 대한 질문입니다!
0
109
1
섹션5 트랜잭션 템플릿관련 질문(이기종 DB)
0
116
1
세션1 테이블 조회결과 그림은 Redo 로그에 속하나요?
0
100
1
트랜잭션이 필요하지 않은 경우 DB 대신 파일 시스템을 사용하는 것이 더 효율적인가?
0
98
1
강의 14분쯤 Exception 질문
0
115
2

