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:
Die clientService
in% productService
ist die Spring-Proxy-Version, nicht die Mock, die ich möchte. Kann ich mit Mockito machen, was ich will?
Sie müssen ProductService
mit @InjectMocks
kommentieren:
Dies wird den ClientService
Mock in Ihre ProductService
einfügen.
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:
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.
Tags und Links java spring junit4 spring-test mockito