Не мог бы кто-нибудь помочь мне в этом. Я пишу модульный тест для ресурса Rest с помощью тестовой среды для тестирования остальной версии версии 1.21 (на контейнере Grizzly).Единичное тестирование с использованием схемы тестирования остатков Джерси и Mockito
Когда я отлаживаю тестовый класс, я вижу mock-объект для myManager. Но когда отладка входит в мой класс MyResouce, объект myManager становится нулевым и получает исключение NullPointer.
Пробовал с решениями, предоставленными разными людьми, но не повезло. Может кто-нибудь мне помочь. дней. :(
классмой ресурс, как это.
@Component
@Path("/somepath")
public class MyResource {
@Autowired
private MyManager myManager;
@Path("/somepath")
@GET
@Produces("application/json")
@ResponseType(String.class)
public Response getResults(@QueryParam("queryParam") String number) {
// myManager is an interface
String str = myManager.getResult(number);
}
}
А вот мой TestClass
public class MyResourceTest extends JerseyTest {
@Mock
private MyManager myManager;
@InjectMocks
private MyResource myResource;
@Override
protected Application configure() {
MockitoAnnotations.initMocks(this);
return new ResourceConfig().register(MyResource.class)
.register(new AbstractBinder() {
@Override
protected void configure() {
bind(myManager).to(MyManager.class);
}
});
}
@Test
public void getResultsTest() {
when(myManager.getResult(anyString())).thenReturn(mock(String.class));
String str = target("path").queryParam("queryParam","10").request().get(String.class);
}
}
внутри MyResource есть MyManager, что объект является недействительным правильно? – VedX
Благодарим вас за ответ. Да ты прав. Макет-объект становится нулевым в классе MyResource. Кстати, я использую Mockito и @Mocked annotataion недоступен. – Vijaya