Я использую Arquillian для внедрения зависимостей для своих тестов. Это работает нормально, если я ввожу bean-компоненты непосредственно в свой тестовый класс, но если bean-компоненты имеют собственные зависимости, которые необходимо внедрить, эти зависимости не внедряются.
Например: компонент 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;