2016-11-21 1 views
0

JPA (및 JSF)를 사용하여 Glassfish에서 실행되는 webapp에서 테스트 데이터 생성에 관한 질문이 있습니다.JPA 프로젝트에서 데이터 생성 테스트하기

나는 보통 기본 테스트 데이터베이스 환경을 생성하는 TestDataCreator과 같은 클래스를 생성합니다. 이 클래스는 main 방법과 같이 포함되어 있습니다

public static void main(String[] args) { 
    createSomeUsers(); 
    createSomeStockItems(); 
    putSomeItemsIntoBaskets(); 
    // ... 
} 

및 theese 각각의 방법은 데이터베이스에 일부 개체를 삽입합니다.

데이터베이스 연결에 오래된 JDBC를 사용하던 중 잘 돌아갔습니다. 하지만 이제 Glassfish 내부와 JPA로 앱을 구현하고 있습니다. 이제 Glassfish는 데이터베이스 연결을 수행하는 사람입니다.

내 질문은 -이 클래스를 (올바르게) 수정하여 다시 작동하는 방법입니다. TestDataCreator의 메소드를 호출하는 "데이터베이스 생성"버튼으로 웹 사이트를 만드는 것보다 더 좋은 방법입니까?

또한이 클래스를 src/test/java에 저장하는 것을 선호하지만 "웹 사이트"솔루션은 클래스를 src/main/java에 넣습니다. 그리고이게 - 나에게 올바른 것이지 않으면 - 악취. 당신이 날 그렇게 할 경우 조언

답변

0

덕분에, 나는 질문의 절반을 응답 할 수 있습니다.

버튼을 사용하여 웹 사이트를 만드는 것보다 나은 방법은 "데이터베이스 만들기"입니다. TestDataCreator의 메소드를 호출합니까?

예, 있습니다. 내가 가장 좋아하는 옵션은 작업중인 모든 환경 (개발자, 테스트, 스테이지, 프로덕션 ...)에서 테이블의 모든 수정 사항과 원시 삽입을 쉽게 재현 할 수있는 Flyway 솔루션입니다. 그러나 JPA를 사용하는 것뿐만 아니라 다른 방법도 있습니다. article이 설명합니다.

또한, 나는 SRC/테스트/자바에서이 클래스를 저장하는 것을 선호하지만, "웹 사이트" 솔루션은 SRC/메인/자바로 클래스를 넣어 리드. 그리고이게 - 나를 정정하십시오, 그렇지 않다면 - 악취.

예, 이상적인 세계에서는 테스트 파일을 "src/test/java"디렉토리에두고 JUnit을 사용하여 테스트 할 수 있습니다. 데이터 소스 연결 설정이 글래스 피시에 어떻게 처리되는지 잘 모르겠습니다. 그래서이 문제를 해결할 수 없습니다. 그러나이 stackoverflow answer을 조사 해보십시오. 어떻게 든 도움이 될 수 있습니다.

관련 문제