Это мой тестовый классПередразнивало Метод бросает NullPointerException в Mockito
@RunWith(MockitoJUnitRunner.class)
public class ServiceTest extends Service{
@Mock
EntityManager eman = Mockito.mock(EntityManager.class);
@Mock
Query query;
@InjectMocks
private Service service;
private static final String NAME = "name";
@Before
public void setUp() {
this.service=new Service();
}
@Test
public void firstMethodTest() {
Query query = mock(Query.class);
when(
eman.createNamedQuery(NAME)).thenReturn(query);
when
( query.setParameter("name", Type)).thenReturn(query);
when (query.getSingleResult()).thenReturn(type);
**service.getAllMethod(1, "string");**
assertSame(/*Something to compare */);
}
}
Это мой метод класса Service
public getAllMethod(int ID, String string)
{
Query query=em
.createNamedQuery("name");
**query.setParameter("string", Type);**
type= query.getSingleResult();
}
Когда service.getAllMethod (1, "String") вызывается из Mocked Object, я получаю NPE в query.setParameter («name», Type), потому что я думаю, что запрос по-прежнему NULL. Пожалуйста, предположите, что My Service работает нормально. Спасибо заранее
При отладке я проверить значение запроса запросов в сервис class.Its значение null.Cant выяснить, как решить эту проблему.
Я сделал изменения, как это было предложено @Mr ложке. И тот же результат. –
Я отредактировал ответ: попробуйте это как отправную точку для вашего теста. –
Btw, @Mr Spoon, с '@ InjectMocks', Mockito автоматически инициализирует эти переменные с помощью аннотации' @ RunWith' или 'MockitoAnnotations # initMocks()' –