Tomcat 7
, JSP
, Servlets
, Log4j
및 MySQL
을 사용하여 프로젝트를하고 있습니다.Java Web Application에서 DataSource로 DAO를 테스트하는 방법은 무엇입니까?
저는 몇 시간 동안이 질문을 옳은 대답으로 봤습니다.
DataSource
및 JUnit
을 사용하여 DAO를 테스트하려면 어떻게해야합니까?
최근에이 주소가 발견되었지만 내 용도로 구성하는 방법을 모르며 좋은 방법인지 확실하지 않습니다.
나는 다음과 같은 DAO 계층 구조에 봉착 :
을 그리고 나는 다음과 같은 방법으로 AbstractRepository
에 DataSource
을 취득하고 있습니다 :
...
protected final DataSource ds;
...
public AbstractRepository() {
DataSource dataSource = null;
try {
Context initContext = new InitialContext();
dataSource = (DataSource) initContext
.lookup("java:/comp/env/jdbc/mydb");
} catch (NamingException ex) {
LOG.error("Cannot obtain a connection from the pool", ex);
}
ds = dataSource;
}
...
당신이 길의 일부 코드 샘플을 생산겠습니까
Entrant Repository Test
에 대한 예를 들어이 문제를 해결 하시겠습니까?
내가 빈 생성자를 한 이유는 필요에 따라 자식이 DataSource를 재정의 할 수 있지만 자식이 동일한 데이터베이스를 사용하면 부모 DataSource를 사용할 수 있기 때문입니다. 비록 내가 테스트하기가 꽤 어렵다는 것에 동의한다. 이 순간에 대한 나의 목표는 JUnit (다른 테스트 프레임 워크를 사용하지 않고) – marknorkin
을 사용하여 JUnit을 테스트하는 것입니다. 제안 된 생성자를 구현하면 모든 자식도 DataSource 매개 변수로 이러한 construcotor를 만들어야합니다. Connection을 패스하는 것이 더 좋은가? – marknorkin
선언 된 생성자가'AbstractRepository (DataSource)'생성자 인 경우 각 서브 클래스는 명시 적으로'super (DataSource)'를 호출해야합니다. 생성자에서. AbstractDatasource를 확장 한 모든 MyRepository에 MyRepository (DataSource) 생성자를 제공하는 것이 좋습니다. 리포지토리는 DataSource의 출처를 알 필요가 없습니다. – AGV