Мне нужно протестировать класс, который расширяет абстрактный класс и использует его защищенный метод. Вот код:
public class DataDaoImpl extends SuperDao<CustomClass>
{
public List<Long> findAllbyId(Long productId)
{
Session session = getCurrentSession();
.......
//Rest of code
}
}
, а вот код абстрактного класса:
public abstract class SuperDao<T>
{
protected final Session getCurrentSession()
{
return sessionFactory.getCurrentSession();
}
}
Теперь, как мне написать модульный тест для DataDaoImpl
и смоделировать сеанс в Session session = getCurrentSession();
??? :
@Test
public void testDataDaoImpl()
{
SessionFactory mockedSessionFactory = Mockito.mock(SessionFactory.class);
Session mockedSession = Mockito.mock(Session.class);
Mockito.when(mockedSessionFactory.getCurrentSession()).thenReturn(mockedSession);
DataDaoImpl DDI_Instance = new DataDaoImpl((long) 120);
DDI_Instance.findAllbyId(Long productId);
}
Но все равно session.getCurrentSession()
терпит неудачу.