2013-12-18 2 views
5

EJB 3.0, Oracle WebLogic을 사용하고 있습니다.EJB 3.0을 테스트하려면 어떻게해야합니까?

다음과 같은 질문에 도움이 필요하십니까 :

어떻게 EJB (3.0) 테스트? 단위 테스트 및/또는 통합 테스트를 의미합니까? 일종의 임베디드 EJB 컨테이너를 사용하거나 유닛 테스트를 작성하기 위해 모의 객체를 만들 수 있습니까? 어쩌면 특별한 테스트 프레임 워크 또는 aproaches가있을 수 있습니까? EJB는 나에게 새롭지는 않지만, 테스트를 작성한 적이 없다. 모든 정보가 유용 할 것입니다.

감사합니다.

답변

6

하나의 옵션은 포함 된 컨테이너를 사용합니다. 모든 테스트 실행을 시작할 때 jndi 조회를 통해 빈을 가져와 컨테이너의 구성을 관리하고 지루하고 비생산적인 모든 종류의 것을 관리해야합니다.

한편, Arquillian과 같은 프레임 워크가 있습니다. 그것은 테스트에서 @EJB와 같은 주석을 지원하고 DI는 컨테이너를 관리합니다 .... 그들의 웹 사이트에서 그 가치있는 가이드를 읽으십시오.

내 경험에 비추어 볼 때, mocks는 컨테이너가 아닌 일부 종속 기능을 테스트 할 때도 작동하지만 복잡한 ejb 테스트에는 좋지 않은 솔루션입니다.

나의 조언은 arquillian과 함께 진행됩니다.

+0

좋습니다. Arquillian에 대해 들어 봤지만 EJB 테스트에 사용할 수 있다는 것을 알지 못했습니다. 감사합니다 – john

+1

어쨌든 그것은 EJB 테스트 할 수 있습니다 - http://arquillian.org/guides/getting_started_rinse_and_repeat/ – HankCa

1

junit 테스트에 사용되는 임베디드 EJB 컨테이너는 서버 & ejbs의 통합 테스트에 좋습니다.

open-ejb (또는 glassfish와 같은 다른 내장 컨테이너)를 사용하면 junit을 프레임 워크로 사용하여 간단한 테스트를 작성할 수 있습니다. JPA조차도 메모리 데이터베이스를 사용하여 잘 통합되어 있습니다.

mocking에 관해서는 원격 서비스에 대해 mockito를 사용할 수 있습니다.

여기에 몇 가지 기록 & 실행 가능한 예제 찾기 : https://tomee.apache.org/examples-trunk/

+0

테스트를위한 특정 예제에 대한 링크는 TomEE가 수행 할 수있는 모든 예제에 대한 예제 목록보다 낫습니다. – meustrus

2
내가 코드의 작은 단위를 테스트하고 테스트하는 이런 종류로만 통합 테스트를 위해 내장 된 용기를 사용하여 가능한 한 많은 일반의 JUnit과 mockito를 사용하려고 할

간단한 단위 테스트만큼 오래 실행됩니다. 그리고 단위 테스트를 실행하는 개발자는 성가신 일이 없어야합니다.

관련 문제