2012-10-01 119 views
1

我正在使用Arquillian注入我的測試的依賴關係。如果我直接將bean注入到我的測試類,它工作正常,但如果bean有自己的依賴關係必須注入,那些依賴關係不會被注入。無法注入與Arquillian的注入bean的依賴關係

例如:FacLptConfiguration bean被正確導入到我的Test Class中,但它沒有被注入到CfdFileCreator bean中。我將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檔案,它應該是WEB-INF/beans.xml。用途:

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

參見https://community.jboss.org/thread/175404

+0

ü先生剛剛救了我大量的時間!謝謝 :) –