Здравствуйте @Vijaya, пожалуйста, нажмите на правильную галочку, если этот ответ помог вам. (У)
ли кто-нибудь помочь мне в этом. Я пишу юнит-тест для ресурса Rest, используя платформу Jersey Rest Test Framework версии 2.21.
Когда я отлаживаю тестовый класс, я вижу фиктивный объект для 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);
}
}
А вот и мой тестовый класс
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);
}
}