更新时间:2023-09-17 12:11:52
EmployeeDAOImpl
contains the following code:
Criteria cr = session.createCriteria(Employees.class, "employees").setResultTransformer(
Criteria.DISTINCT_ROOT_ENTITY);
Your test has:
Mockito.doReturn(criteria).when(session)
.createCriteria(ConceptModelDetails.class);
You are correctly mocking out sessionFactory
and the session
that it is returning, as far as I can tell from your code. However, you are not correctly mocking out session.createCriteria(Employee.class, "employees")
(instead, you are setting the return value for session.createCriteria(ConceptModelDetails.class)
). Therefore, the return value from the mock will be null
. So when you dereference it immediately (calling setResultTransformer
), you will get a NullPointerException
.
To verify this, try stepping into the debugger, or adding log statements to EmployeeDAOImpl
, that show the values of sessionFactory
, session
, and the result from session.createCriteria(...)
.