Код IT
← Каталог

JUnit 5 и тестирование Java — Mockito

Фрагмент из «JUnit 5 и тестирование Java»: Mockito.

Java main.java

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;

import static org.mockito.Mockito.*;
import static org.junit.jupiter.api.Assertions.*;

@ExtendWith(MockitoExtension.class)
class UserServiceTest {

    @Mock
    UserRepository repository;

    @InjectMocks
    UserService service;

    @Test
    void createsUser() {
        when(repository.existsByEmail("a@b.c")).thenReturn(false);
        when(repository.save(any())).thenAnswer(inv -> inv.getArgument(0));

        var user = service.register("Ann", "a@b.c");

        assertEquals("Ann", user.getName());
        verify(repository).save(any(User.class));
    }
}

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;

import static org.mockito.Mockito.*;
import static org.junit.jupiter.api.Assertions.*;

@ExtendWith(MockitoExtension.class)
class UserServiceTest {

    @Mock
    UserRepository repository;

    @InjectMocks
    UserService service;

    @Test
    void createsUser() {
        when(repository.existsByEmail("a@b.c")).thenReturn(false);
        when(repository.save(any())).thenAnswer(inv -> inv.getArgument(0));

        var user = service.register("Ann", "a@b.c");

        assertEquals("Ann", user.getName());
        verify(repository).save(any(User.class));
    }
}