2013-03-19 45 views
0

將@Autowired添加到我的服務層使Junit錯誤無法加載ApplicationContext?將@Autowired添加到我的服務層使Junit錯誤無法加載ApplicationContext?

我的公司有一些評論代碼,我們都是核心。我想今天添加到我的服務,所以我把它添加到pom.xml的,然後我做:

@Autowired 
private CoreDao coreDao; 

一旦我說這是我的JUnit測試開始給我的錯誤:

Failed to load ApplicationContext 

所以我評論了兩條線,一切都很好。爲什麼加入大約兩行打破我的測試

這裏是我的JUnit測試,所以我不知道爲什麼它尋找它

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes=TestDatabaseConfig.class) 
public class TestApp { 


    private static Log LOGGER = LogFactory.getLog(TestApp.class.getName()); 

    @Autowired 
    private MemberInquiryService service; 

    @Test 
    public void testgetMemeberRequestInformation() { 

     MemberRequest inMemberRequest = new MemberRequest(); 

     inMemberRequest.setRequestor("[email protected]"); 
     MemberInquiryInformation testInfo = service.getMemeberRequestInformation(inMemberRequest); 

     Assert.assertEquals(testInfo.getFirst_Name(), "Christine"); 
     Assert.assertEquals(testInfo.getLast_Name(), "Pillings"); 
    } 


    @Test 
    public void testListMemberInquirys(){ 

     List<MemberInquiry> listMemberInquirys = service.listMemberInquirys(); 

     LOGGER.debug("Number of MemberInquiry(S) returned (" + listMemberInquirys.size() +")"); 


    } 

} 

我psted堆棧跟蹤到https://docs.google.com/document/d/1KU-63IQBbptjVNGGImtEBL9VIk04CCGBFiJuIjp_8d0/edit?usp=sharing

+2

可以在失敗之前顯示日誌嗎? – 2013-03-19 16:19:45

+0

您的'TestDatabaseConfig'類是否包含'CoreDao' bean定義? – 2013-03-19 16:40:51

+0

是否有完整的堆棧跟蹤?您的JUnit中是否有與通常運行時相同的庫? – CodeChimp 2013-03-19 17:26:49

回答

0

的是,DataConfig沒有在其中包含核心Bean的軟件包上執行ComponentScan。

例子:

@ComponentScan(basePackages= { "org.xxxx.inquiry", "org.xxxx.core" }) 
0

兩種可能性:

  1. 作爲SJS說,你忘了@ComponentScan春季不能自動裝配你CoreDao到特定的類型。
  2. 如果CoreDao是基於JPA,則需要相應的表,如果你沒有安裝persistence.xml中:

我有類似的問題,我花了幾天就看着辦吧。最後,我把value =「create」而不是value =「validate」來解決問題。

相關問題