Я хочу протестировать функцию в сервисе, которая выглядит следующим образом:
Код: Выделить всё
public UploadedScanQueryFile store(MultipartFile file) {
UploadedScanQueryFile newFileRecord = new UploadedScanQueryFile();
newFileRecord.setUploadDateTime(LocalDateTime.now(ZoneOffset.UTC));
try {
newFileRecord.setFile(file.getBytes());
} catch (IOException ex) {
log.debug("Exception when trying to get bytes form file : {}", ex.toString());
}
newFileRecord.setFileName(file.getOriginalFilename());
return fileRepository.save(newFileRecord);
}
Код: Выделить всё
fileRepositoryМой тест JUnit выглядит так:
Код: Выделить всё
@MockBean UploadedScanQueryFileRepository fileRepository;
@Test
void doValidStoreTest() throws IOException {
String filename = "ScanQueryUploadTestFile.csv";
File testCSVfile = new ClassPathResource(filename).getFile();
InputStream testCSVInputStream = new FileInputStream(testCSVfile);
MockMultipartFile testCSVMultipartFile = new MockMultipartFile(filename, testCSVInputStream);
UploadedScanQueryFile result = new UploadedScanQueryFile();
result.setFileName(filename);
result.setId(99);
when(fileRepository.save(org.mockito.ArgumentMatchers.any(UploadedScanQueryFile.class))).thenReturn(result);
storageService.store(testCSVMultipartFile);
assertEquals(99, result.getId());
}
Есть ли у кого-нибудь предложения о том, как лучше всего протестировать этот сценарий?
Я написал приведенный выше тестовый класс, который в основном запускает метод, чтобы убедиться, что он не работает. 'не выбрасываю исключение, но это не означает, что внутренние механизмы работают правильно,
Подробнее здесь: https://stackoverflow.com/questions/790 ... t-was-mock
Мобильная версия