2016-05-12 25 views
-1

我有一個如何通過JUnit&EasyMock測試此方法?

@Component 
public class MyBean{ 

     @Autowired 
     Bean1 bean1; 

     @Autowired 
     Bean2 bean2; 

     public void create(Param param1, Param param2){ 
      SomeObject object = bean2.getDesiredResult(); 
     } 

} 

其中Bean2.javainstance variables這是autowired -

class Bean2{ 
    @Autowired 
    Bean3 bean3; 

    @Autowired 
    Bean4 bean4; 

    @Autowired 
    Bean5 bean5; 

    public Object getDesiredResult(){ 
     // some code which calls method on some beans which have autowired 
     // beans, and this goes on and on further. 
    } 

} 

我要測試這種方法,

create(Param param1, Param param2) 

的主要問題是我繼續得到這些exceptons:

沒有類型
的排位豆無法自動裝配領域

,因爲我可以,因爲它們不是手動component-scan所有的軟件包數量如此之大。大約有項目

<context:component-scan base-package 

我使用JUnit & EasyMock框架3000個java包。 請建議。

回答

0

你似乎在混合兩件事。你想用JUnit和EasyMock進行單元測試。這不需要Spring或任何自動裝配。您將執行以下操作:

// Record the mock 
Bean2 mock = createMock(Bean2.class); 
expect(mock.getDesiredResult()).andReturn(new SomeObject()); 
replay(mock); 

// Configure the tested class 
MyBean testSubject = new MyBean(); 
testSubject.setBean(mock); 

// Test 
testSubject.create(new Param1(), new Param2()); 

// Check the mock was called as expected 
verify(mock); 

用於包裹掃描。與我的觀點無關,包掃描可以遞歸。