다른 EJB/CDI Bean (5-10과 같은)에 따라 EJB가 자주 있고 많은 메소드가 그 중 일부만 사용합니다. 통합 테스트 (우리는 Glassfish 4.0 컨테이너가 내장 된 Arquillian을 사용하고 있습니다) 전체 클래스 그래프에 대한 종속성을 제공해야하기 때문에 고통 스럽습니다. 하나의 테스트를 완료하는 데 필요한 시간이 상당히 증가하기 때문에 전체 패키지를 추가하면 더 많은 종속성이 생기고 모든 클래스를 추가하지 않으므로 하나씩 클래스를 ShrinkWrap 아카이브에 추가합니다. 또한 모든 테스트에 대해 모든 클래스를 추가하고 싶지 않습니다. 특히 파일 시스템을 만지거나 셸 명령을 실행하는 모든 클래스가 필요합니다.Arquillian에서 많은 의존성을 지닌 EJB 통합 테스트
종속성 그래프가 커지면 UnsupportedOperationExceptions를 던지는 메소드를 사용하여 EJB 인터페이스를 구현함으로써 더미 객체를 만들지 만, 많은 객체가 있고 클래스 이름 변경을 유지하기가 어렵 기 때문에 지루해지고 있습니다 MyService에 대한 DummyMyService가 있지만 OldService에서 이름이 바뀌었기 때문에 DummyOldService를 찾지 못했기 때문에 다른 더미를 만들 것입니다.
EJB/CDI Bean의 통합 테스트에 대해 더미 클래스를 자동으로 생성 할 수 있습니까 (UnsupportedOperationExceptions를 사용하지 않거나 던짐)? 뭔가 같은 :
ShrinkWrap.create(JavaArchive.class, "test.jar")
.addClass(MyTestedService.class)
.addClass(ImportantDependency.class)
.addClass(Dummy.createDummy(DependencyNeededForSomeMethods.class));
나는 단지 doImportantThings 방법을 테스트 할이 같은 클래스에 대한
: 어쩌면
@Stateless
public class MyTestedService {
@Inject
private ImportantDependency importantDependency;
@Inject
private DependencyNeededForSomeMethods dependencyNeededForSomeMethods;
public void doImportantThings(){
....
importantDependency.doIt();
....
}
public void doSomethingElse(){
....
dependencyNeededForSomeMethods.doRarelyNeededThings();
....
importantDependency.doAnotherThing();
}
}
을 또는 아래에있는 클래스를 리팩토링을 제외하고 그것을 (처리하는 또 다른 방법이 테스트)?
테스트에서 종속성을 사용하지 않는 경우 왜 패키지합니까? –
그렇지 않으면 CDI 컨테이너 (Weld, 내 글래스 피시 컨테이너를 사용하고 있기 때문에)는 불만족 한 의존성에 대해 불평 할 것입니다. – piotrek