Я пытаюсь смоделировать RestTemplate
getEntity()
метод, используя приведенный ниже код, но я получаю исключение, и я новичок в модульном тестировании
Может кто-нибудь помочь мне, пожалуйста, в чем моя ошибка
Класс
public List<SampleObject1> getGitHubUSersList(){
try {
ResponseEntity<SampleObject1[]>responseEntity = restTemplate.getForEntity("https://api.github.com/users", SampleObject1[].class);
List<SampleObject1>arrayList = Arrays.asList(responseEntity.getBody());
System.out.println("final list is---->"+objectMapperl.writeValueAsString(arrayList));
return arrayList;
}catch (Exception e) {
e.printStackTrace();
}
return null;
}
Тестовый класс
public class SampleServiceTest1 {
@Mock
RestTemplate mockrestTemplate;
@InjectMocks
@Spy
SampleService1 sampleService;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
}
@SuppressWarnings("unchecked")
@Test
public void getGitHubUSersListTest() {
List<SampleObject1> sampleObject1s = new ArrayList<>();
SampleObject1 sampoleObject1 = new SampleObject1();
sampoleObject1.setId(1);
sampoleObject1.setLogin("sample1");
sampoleObject1.setNode_id("sample2");
sampleObject1s.add(sampoleObject1);
SampleObject1 sampoleObject2 = new SampleObject1();
sampoleObject2.setId(2);
sampoleObject2.setLogin("sample3");
sampoleObject2.setNode_id("sample4");
sampleObject1s.add(sampoleObject2);
Mockito.doReturn(sampleObject1s).when(mockrestTemplate).getForEntity(Matchers.anyString(), ArgumentMatchers.any(Class.class));
List<SampleObject1> list = sampleService.getGitHubUSersList();
assertNotNull(list);
}
}
Ошибка
org.mockito.exceptions.misusing.NullInsteadOfMockException:
Argument passed to when() is null!
Example of correct stubbing:
doThrow(new RuntimeException()).when(mock).someMethod();
Also, if you use @Mock annotation don't miss initMocks()
at com.example.microservice.service.SampleServiceTest1.getGitHubUSersListTest(SampleServiceTest1.java:50)