У меня есть класс для тестирования с именем ClassToTest. Он вызывает CloudService для загрузки файла.
public class ClassToTest {
public String moveFilesToCloud(String path, String documentclass, String objStore) {
log.info("Moving files to cloud.");
String docId = StringUtils.EMPTY;
CloudService service = new CloudService();
try {
docId = service.uploadDocument(path,documentclass,objStore,"");
} catch (CloudException e) {
log.info("* Error uploading reports to cloud *" + e.getMessage());
}
return docId;
}
}
Ниже приведен тестовый класс. В тестовом классе есть поддельный объект для CloudService. Когда я запускаю тест вместо получения смоделированного объекта, выполняется фактический CloudService и происходит сбой.
@Mock
CloudService cloudService;
@InjectMocks
ClassToTest classToTest;
@Test
public void testMoveFilesToCloud() throws Exception {
String pass = "pass";
when(cloudService.uploadDocument("abc","def","ghi","")).thenReturn(pass);
String result = classToTest.moveFilesToCloud("abc","def","ghi");
assertEquals(result,pass);
}
Я ожидаю, что при выполнении этой строки будет использоваться смоделированный объект для CloudService -
CloudService service = new CloudService ();
Вместо этого он фактически пытается создать новый экземпляр CloudService.
Где я нахожусь что не так?