2012-11-16 5 views
0

일반적으로 단위 테스트에서 객체의 조롱이 사용됩니다. EntityManager가 조롱을당한 경우와 같이 JPA Entity에 대한 단위 테스트를 작성하는 방법은 무엇입니까? 실제로 테스트되는 것은 무엇입니까?데이터베이스 액세스/ORM 엔터티를 단위 테스트하는 방법?

편집 : 개체가 잘 유지되는지 테스트하려고한다고 가정합니다. 프로덕션 코드에서는 지속성을 위해 컨테이너 제공 EntityManager를 사용할 수 있습니다. 이 유형의 테스트의 경우이 EntityManager를 조롱해야하며 테스트를위한 리소스 로컬이어야하며 컨테이너에서 테스트를 실행해야합니까 (Java 코드에서 실행되는 테스트 실행)?

답변

3

엔티티는 데이터를 나타냅니다. 다른 메소드와 마찬가지로 단위 테스트를받을 수있는 몇 가지 메소드 (getter 및 setter 제외)를 가질 수 있습니다.

엔터티가 데이터베이스에서 유지되고 검색 될 수 있는지 (즉, 해당 매핑이 올바르게 정의되었는지) 테스트하려는 경우 아무 것도 모의하지 말아야합니다. 실제 엔티티 관리자와 테스트 데이터로 채워진 데이터베이스를 사용하고 엔티티의 인스턴스를 지속 및/또는 검색하려고하는 테스트가 있어야합니다.

이러한 테스트를 수행하기 전에 DbSetup (예, 여기에서 자체 승격)을 사용하여 테스트 데이터로 데이터베이스를 채울 수 있습니다.

+0

데이터가 잘 유지되는지 테스트하고 싶은가? 이 테스트가 컨테이너에서 수행되어야합니까? – m3th0dman

+0

필요는 없습니다. JPA는 컨테이너 외부에서 사용할 수 있습니다. –

+0

그래서 자원 로컬 EntityManager를 사용하는 것이 해결책일까요? 감사. – m3th0dman

관련 문제