JUnit:使用Mockito进行Hibernate调用

时间:2018-09-17 13:55:25

标签: java hibernate junit mockito

我正在使用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。

0 个答案:

没有答案