Mock Dienstleistungen in einem anderen Frühling Service mit Mockito

8

Ich stehe vor Problemen, wenn ich Dienste verspotte, die in andere Dienste innerhalb des Spring-Frameworks eingespeist werden. Hier ist mein Code:

%Vor%

Ich möchte die ClientService in meinem Test vortäuschen, also habe ich Folgendes versucht:

%Vor%

Die clientService in% productService ist die Spring-Proxy-Version, nicht die Mock, die ich möchte. Kann ich mit Mockito machen, was ich will?

    
br4zuca 25.09.2013, 11:41
quelle

3 Antworten

4

Sie müssen ProductService mit @InjectMocks kommentieren:

%Vor%

Dies wird den ClientService Mock in Ihre ProductService einfügen.

    
Debojit Saikia 25.09.2013 11:57
quelle
0

Es gibt mehrere Möglichkeiten, dies zu erreichen. Der einfachste Weg dazu ist don't use field injection, but setter injection , was bedeutet, dass Sie Folgendes haben sollten:

%Vor%

in Ihrer Serviceklasse, dann können Sie Ihren Mock dem Dienst in der Testklasse injizieren:

%Vor%

important: Wenn dies nur ein Komponententest ist, sollten Sie nicht SpringJUnit4ClassRunner.class , sondern MockitoJunitRunner.class verwenden, damit Sie auch field inject für Ihre Felder verwenden können.

    
Jaiwo99 25.09.2013 11:57
quelle
0

Zusätzlich zu

%Vor%

Fügen Sie die folgende Methode hinzu

%Vor%     
Jacky 25.07.2017 12:02
quelle