3 계층 응용 프로그램을 개발 중이며, 지속성 계층에서 DAO에 대한 통합 테스트를 만들고 있습니다. 응용 프로그램이 Websphere 또는 JBoss에서 실행될 때 해당 응용 프로그램 서버의 연결 풀링 및 트랜잭션 관리자를 사용할 것으로 예상됩니다. 응용 프로그램이 Tomcat 또는 Jetty에서 실행되면 풀링에는 C3P0을 사용하고 트랜잭션에는 Atomikos를 사용합니다.응용 프로그램 서버에서 DAO 통합 테스트를 수행해야합니까?
이러한 서로 다른 하위 시스템으로 인해 DAO를 완전하게 구성된 응용 프로그램 서버 환경에서 테스트해야합니까? 아니면 서비스 계층 통합 테스트시 이러한 문제를 처리해야합니까? 현재 우리는 DAO 통합 테스트를위한 비 JTA (즉, 리소스 로컬) 트랜잭션을 사용하여 간단한 JDBC 데이터 소스를 설정할 계획이므로 응용 프로그램 서버는 포함되어 있지 않습니다 ... 그러나 이것은 우리가 밝히지 않을 환경 문제에 대해 궁금해합니다. .
가능하지 않을 수 있지만 컨테이너 외부하지만 데이터베이스 "단위 테스트"내 DAO를 위해 (트랜잭션을 사용하는 방법에 대한 경계에 있었다 - 간단한 JDBC로 연결), 애플리케이션 서버없이 트랜잭션을 사용하는 방법을 자세히 설명 할 수 있으면 감사하겠습니다. – dchucks
@dchucks - 스프링 테스트 애플리케이션 컨텍스트를 만들고 Spring 기반 JPA 엔티티 관리자를 구성하여 Hibernate 및 Atomikos 트랜잭션 관리 도구를 사용했습니다. 자세한 내용을 보려면 질문을 열고 여기에서 질문에 대한 링크를 클릭하십시오. – HDave