java 使用JUnit和Mockito测试实体管理器

huwehgph  于 2023-02-11  发布在  Java
关注(0)|答案(1)|浏览(125)

我试过测试下面的类,但是没有成功。

@PersistenceContext
    private EntityManager em;

    @Transactional
    public int sendToTableOne()
    {
        return em.createNativeQuery("INSERT INTO TABLE_ONE"
                        + " SELECT * FROM TABLE_TWO")
                .executeUpdate();
    }

我如何测试这个类?
我在Spring框架上使用JUnit Jupiter。

368yc8dk

368yc8dk1#

我不知道这是不是一个好的解决方案,但我得到100%的覆盖率。

@Mock
EntityManager entityManager;

@Mock
Query query;

@InjectMocks
ThSwapDaoImpl daoImpl;

@BeforeEach
void setUp() throws Exception {
}

@Test
void test() {
    
    when(entityManager.createNativeQuery(anyString())).thenReturn(query);
    when(query.executeUpdate()).thenReturn(1);
    assertEquals(daoImpl.sendToHistorical(), 1);

}

相关问题