Mockito – adnotacje

W tym wpisie przybliżę stosowanie adnotacji z freamworks Mockito z uwzględnieniem Junit4 i Junit5.

Aby móc skorzystać z adnotacji z Mockito należny nad klasą dodać dla Junit4: @RunWith(MockitoJUnitRunner.class) natomiast dla Junit5 jest to: @ExtendWith(MockitoExtension.class) i już można dodawać kolejne adnotacje. Dodatkowo biblioteka Mockito2 pozawala na zamieszczenie jeszcze jednej adnotacji nad klasą testową. Jest to: @MockitoSettings. Adnotacja ma do wyboru opcje strictness z której można wybrać klasę Strictness a z niej: LENIENT, STRICT_STUB lub WARN. W naszym przykładzie jest zastosowana pełna adnotacja: @MockitoSettings (strictness = Strictness.STRICT_STUBS) – ponieważ chodzi o zwiększenie restrykcyjności. Powinno pozwolić to na bardzo dokładne sprawdzenie tego w jaki sposób korzystamy z mocków i stubów w testach. Wpływa również na szybsze i lepsze wykrycie błędów. Domyślnie opcja ustawiona jest na WARN.

Adnotacja @InjectMocks – określa w której klasie będą znajdować się jakieś zależności które w testach zamieniamy w mocki i których działanie będziemy chcieli programować lub weryfikować. W naszym przykładzie będzie to klasa CartService ponieważ posiada zależność którą jest CartHandler. I nad klasą CartService ustawiamy adnotacje @InjectMock.

Natomiast adnotacja @Mock określa dany obiekt mockowy, i jest ona tożsama z metodą mock. W naszym przykładzie mockowany będzie interfejs CartHandler i nad tym polem ustawiamy adnotacje @Mock. Zobaczmy jak wygląda taki przykład:

@MockitoSettings (strictness = Strictness.STRICT_STUBS) 
@RunWith(MockitoJUnitRunner.class) lub  @ExtendWith(MockitoExtension.class) 
class CartServiceTest {

@InjectMocks
private CartService cartService; 

@Mock 
private CartHandler cartHandler;

Dzięki tym adnotacją nie potrzeby tworzenia w metodach testowych instancji interfejsu. A co za tym idzie nie powtarzamy kodu.

Bądź pierwszy, który skomentuje ten wpis!

Dodaj komentarz

Twój adres email nie zostanie opublikowany.


*