這是測試類: 我嘗試注入一個對象,然後執行操作以測試注入是否失敗。依賴注入在Arquillian測試中不起作用
@RunWith(Arquillian.class)
public class ExcelProcessorTest {
// Not work. Because Paper and ExcelProcessorTest are in different modules?
@Inject
private Paper paper;
@Deployment
public static JavaArchive createDeployment() {
JavaArchive jar = ShrinkWrap.create(JavaArchive.class, "test.jar")
.addClasses(Paper.class)
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
System.out.println(jar.toString(true));
return jar;
}
@Test
public void notNullTest() {
Assert.assertNotNull(paper); // paper is null here.
}
}
我一直在一個名爲ftc
項目,這是ftc
結構:
注意ftc
是ftc-*
父模塊。該項目由Maven公約組織。
ExcelProcessorTest
類位於ftc-test
模塊:
而且Paper
類位於ftc-ejb
模塊:
Paper
類是一個簡單的實體bean:
/**
* Paper generated by hbm2java
*/
@Entity
@Table(name = "paper")
public class Paper implements java.io.Serializable {
private Integer id;
private String title;
private String author;
private String journal;
private String volumn;
private String pages;
private String alternateJournal;
private String issn;
private String doi;
private String acccessionNumber;
private String keywords;
private String abstract_;
private Integer timesCited;
private Integer citedReferenceCount;
private String citedReferenceName;
private String website;
private String pdfPath;
private String issue;
private Integer paperIndexId;
private Integer year; // 論文發表的年份
private String type; // OVERVIEW, EXCEL, PAPER
private SourceFile sourceFile;
private Set<PaperIndex> paperIndexes = new HashSet<PaperIndex>(0);
private Set<Sentence> sentences = new HashSet<Sentence>(0);
public Paper() {
}
莫非
任何人請告訴我爲什麼注射離子失敗了?
哦..我現在有事要做。我會在幾個小時後回到這裏。如果您需要任何細節,請評論下面的內容。謝謝。