我正在使用Mockito Framework编写JUnit。我的目的是通过在本地数据库连接上运行测试用例来测试DAO方法的有效性。到目前为止,我能够模拟会话,但无法建立连接:
import org.mockito.*;
@RunWith(MockitoJUnitRunner.class)
public class TestDAO{
@Mock
private SessionFactory mockedSessionFactory;
@Mock
private Session mockedSession;
@Mock
private SessionFactory hibernateSessionFactory;
@Mock
private Query mockedQuery;
@Mock
private Connection mockedConnection;
@Before
public void beforeTest(){
MockitoAnnotations.initMocks(this);
}
@Before
public void setUp() {
mockedSession=Mockito.mock(Session.class);
mockedSessionFactory = Mockito.mock(SessionFactory.class);
Mockito.when(mockedSessionFactory.openSession()).thenReturn(mockedSession);
mockedQuery=Mockito.mock(Query.class);
}
@Test
public void testConnection() throws SQLException {
when(mockedSessionFactory.getCurrentSession()).thenReturn(mockedSession);
mockedConnection = mockedSession.connection();
System.out.println(mockedSession);
System.out.println(mockedConnection);
}
我得到的结果是
模拟会话,哈希码:1543237999 空
在这里,我无法建立连接。我试图模拟HibernateUtil
mockedHibernateUtil=Mockito.mock(HibernateUtil.class);
mockedHibernateUtil.setSessionFactory(mockedSessionFactory);
mockedSession=mockedHibernateUtil.getSessionFactory().openSession();
但是它给出了
NullPointerException
有人可以帮我吗, 目的:提供一个测试EmployeeID并测试该员工是处于“ IT”还是“ HR”。 根据业务设置查询,域类和DAO。