2016-08-09 66 views
-1

setzen Ich habe vor kurzem begonnen, mit @Mockito Annotation bei Junit Tests arbeiten.Wie Mockito Regeln an einer Stelle (Super-Klasse) für alle Unterklasse

Der Grund, warum ich begann, @Mockito zu verwenden, ist, weil die Verwendung von @Autowired für alle Service-Klasse sehr lange dauerte.

Ich habe mehr als 50 Test dass für exmple die gleiche Klasse mit: userService

i diese

@Mock 
    private UserService userService; 

an meiner Super-Klasse haben möchte und für die ganze Unterklasse Set Mocking, alle Unterklasse haben diffrent Methode und mehrere @Test

Normalerweise, was ich in der @Test Methode, um diese Linie tun, ist die Zugabe:

Mockito.when(userService.isValid()).thenReturn(true)); 

Wie könnte ich dieses Mocking an einem Ort (in der Superklasse) einstellen und alle Unterklassen könnten diesen Mock benutzen?

+0

Sind Sie fragen, wie man ein Klassenfeld sichtbar Kind Klassen machen ?? Die '@RunWith (MokcitoJunitRunner.class)' auf der Superklasse und '@Mock protected UserService userService' auf dem Feld funktionieren –

+0

Wie kann alle Unterklasse dieses Verhalten kennen Mockito.when (userService.isValid()). ThenReturn (wahr)); – 2Big2BeSmall

+0

Warum nicht eine abstrakte Testklasse erstellen, die den Aufruf der Methodenmethode "Mockito.when (userService.isValid()). ThenReturn (true));" – kuhajeyan

Antwort

0

ich gelöst, dass durch diese Anmerkung

@Before – Run before @Test 

verwenden und dass, wo ich die Regeln Mockito.when(userService.isValid()).thenReturn(true));