Я работаю с mockito и пытаюсь протестировать метод get из моего сервиса. Проблема в том, что тест вызывает реальный метод, и по этой причине он вообще не работает. Следующий метод, который я хотел бы проверить:
public Hours getHours(String id) throws IllegalArgumentException {
logger.debug("getting id {}", id);
try {
return repository.get(validateUuid(id).toString());
} catch (Exception e) {
logger.error("there was an issue querying with id {}", id, e);
publishError("get", e);
throw new IllegalArgumentException(
String.format("there was an issue querying with id {%s}", id));
}
}
private UUID validateUuid(String id) {
try {
return UUID.fromString(id);
} catch (Exception e) {
throw new IllegalArgumentException("the id given was was invalid", e);
}
}
Это код моего теста:
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.BDDMockito.given;
import static org.mockito.Matchers.*;
import static org.mockito.Mockito.when;
class serviceTest {
@Mock
private Repository<Hours> repository;
private Service service;
@BeforeEach
public void init() {
MockitoAnnotations.initMocks(this);
service = new service();
}
@Test
void addHours() {
Hours hours = new Hours();
hours.setCorrelationId("a-988787888b712ijj-0997878");
hours.setPerner("720022");
given(repository.post(any(Hours.class), anyBoolean())).willReturn(hours);
Hours persistedHours = service.addHours(hours);
assertEquals(persistedHours, hours);
}
@Test
void getHours() {
String mockedUUID = UUID.randomUUID().toString();
Hours hours = new Hours();
Hours.setCorrelationId("a-988787888b712ijj-0997878");
when(repository.get(mockedUUID)).thenReturn(hours);
Hours persistedHours = service.getHours(mockedUUID);
assertEquals(persistedHours.getCorrelationId(), hours.getCorrelationId());
}
@Test
void getHousrAll() {
List<Hours> hoursList = new ArrayList<>();
PaginatedResult<Hours> result = new PaginatedResult<>();
result.setResult(hoursList);
given(repository.get(any(Query.class))).willReturn(result);
PaginatedResult<Hours> result2 = service.getHousrAll(new Query());
assertEquals(result , result2);
}
}
Я также использовал:
given(banquetLaborHoursRepository.get(anyString())).willReturn(banquetLabourHours);
Но результат был тот же. Есть идеи?