2012-10-01 3 views
1

Arquillian을 사용하여 테스트에 대한 의존성을 주입하고 있습니다. 콩을 직접 내 테스트 클래스에 주입하면 정상적으로 작동하지만 콩에 자체 의존성이 있다면 주입해야한다.주입 된 콩의 의존성을 Arquillian에 주입 할 수 없습니다.

예 : FacLptConfiguration 빈은 테스트 클래스로 올바르게 가져 오지만 CfdFileCreator 빈에 주입되지 않습니다. 테스트 클래스에 FacLptConfigurtion을 주입하여 주입이 제대로 작동하는지 확인했지만이 클래스의 사용자는 CfdFileCreator입니다.

@RunWith(Arquillian.class) 
public class CfdFileCreatorArquillianTest { 


@Deployment 
public static WebArchive createDepolyment() { 
    return ShrinkWrap.create(WebArchive.class) 
      .addClass(FacLptConfiguration.class) 
      .addClass(InterimFileCreator.class) 
      .addClass(CfdFileCreator.class) 
      .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml") 
      .addAsWebInfResource(new File("C:/aLearn/FacLpt/web/WEB-INF/env-entries.properties")); 
} 

public static String TEST_FOLDER = "C:/aLearn/FacLpt/src/test/testdata/pruebas/"; 

@Inject 
private FacLptConfiguration facLptConfiguration; 

@Inject 
private CfdFileCreator cfdFileCreator; 


@Test 
public void createCfd() { 
    System.out.println("in createCFD"); 
    cfdFileCreator.createCFDFile(); 
} 

}

이 주사는 작동하지 않습니다 :

@Singleton 
    public class CfdFileCreator { 


    @Inject 
    private InterimFileCreator interimFileCreator; 
    @Inject 
    private FacLptConfiguration facLptConfiguration; 

답변

6

나는 당신의 문제가 beans.xml 환경의 위치라고 생각합니다. 웹 아카이브의 경우 WEB-INF/beans.xml이어야합니다. 사용 :

addAsWebInfResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml"))

도 참조 https://community.jboss.org/thread/175404

+0

유 선생님은 단지 나에게 많은 시간을 저장! 감사 :) –