2016-05-12 9 views
-1

Ich habe einWie testet man diese Methode mit JUnit & EasyMock?

@Component 
public class MyBean{ 

     @Autowired 
     Bean1 bean1; 

     @Autowired 
     Bean2 bean2; 

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

} 

wo Bean2.javainstance variables hat die autowired sind -

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. 
    } 

} 

Ich habe diese Methode zu testen,

create(Param param1, Param param2) 

Das große Problem ist, ich auch weiterhin diese erhalten ausgenommen:

Keine Warte Bohne vom Typ
konnte nicht Feld

autowire, weil ich kann nicht manuell component-scan alle Pakete, wie sie so groß an der Zahl sind. Es gibt rund 3000 Java-Pakete im Projekt

<context:component-scan base-package 

I JUnit & EasyMock Frameworks verwenden. Bitte vorschlagen.

Antwort

0

Sie scheinen zwei Dinge zu mischen. Sie möchten einen Komponententest mit JUnit und EasyMock durchführen. Dies erfordert weder Spring noch irgendeinen Autowire. Sie werden Folgendes tun:

// 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); 

Für das Scannen von Paketen. Was mit dem Testen aus meiner Sicht nicht zusammenhängt, kann der Paket-Scan rekursiv sein.

Verwandte Themen