W sytuacji, gdy piszemy testy JUnit dla klasy, która posiada pola ustawione poprzez dependency injection, niejednokrotnie pojawia się problem ustawienia tych pól. Z pomocą przychodzi nam tutaj Mockito.

Rozpatrzmy to na przykładzie. Mamy servis, który chcemy przetestować:

@Service("customerCheckService")
public class CustomerCheckServiceImpl implements CustomerCheckService {
    @Autowired
    CustomerDao customerDao;

Jak widzimy customerDao jest wstrzyknięty poprzez Autowired. Pisząc test musimy wstrzyknąć to dao do serwisu.

I tutaj z pomocą przychodzi nam Mockito i odpowiednie anotacje.
Pierwszym krokiem jest stworzenie mocka klasy (customerDao), która ma zostać wstrzyknięta. Odbywa się to poprzez anotację @Mock.

@Mock
CustomerDao customerDao;

Następnie musimy odpowiednie zanotować klasę, do której mają zostać wstrzyknięte nasze mocki. Wykorzystujemy tutaj kolejną anotację: @InjectMocks, która zadba o to, aby wszystkie pola ustawiane poprzez wstrzykiwanie zostały ustawione.

@InjectMocks   
CustomerCheckServiceImpl customerCheckService = new CustomerCheckServiceImpl();

Musimy pamiętać jedynie, aby wcześniej zostały stworzone odpowiednie mocki.

Testing – using mockito for spring dependency injection
Tagged on:                 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Social Widgets powered by AB-WebLog.com.