Mockito: всегда возвращает нулевой результат из SQLQuery, используя Mockito - PullRequest
0 голосов
/ 23 октября 2018

Я создал тест mockito для метода, но он всегда возвращает пустой.Я проверил, есть ли данные для данного условия (email и batchId) в БД.Где я иду не так?

@Test
public void  testGetStudentResultByNameAndId() {
    String name = "fgafsg@gmail.com";
    Number batchId = 23;

    Session session = Mockito.mock(Session.class);
    SQLQuery sqlQuery = Mockito.mock(SQLQuery.class);
    Mockito.when(sessionFactory.getCurrentSession()).thenReturn(session);
    Mockito.when(session.createQuery(" select id , tracking_type_id , date_created from STUDENT_RESULT_INFO "+
             " where name = '" + name + "' and  batch_id = "+batchId  +  " and tracking_type_id in (1,2) ")).thenReturn(sqlQuery);
    Mockito.when(sqlQuery.addScalar("id", StringType.INSTANCE)).thenReturn(sqlQuery);
    Mockito.when(sqlQuery.addScalar("tracking_type_id", StringType.INSTANCE)).thenReturn(sqlQuery);
    Mockito.when(sqlQuery.addScalar("date_created", TimestampType.INSTANCE)).thenReturn(sqlQuery);
    Mockito.when(sqlQuery.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE)).thenReturn(sqlQuery);
    Mockito.when(sqlQuery.list()).thenReturn(new ArrayList<Object>());
    System.out.println("sqlQuery.list() :"+sqlQuery.list());
}

Мой вывод:

query.list() :[]
...