为了测试我的程序,我需要模拟一个方法调用,如下所示:
entityManager.createQuery("SELECT...", Integer.class).getSingleResult()
createQuery
部分返回一个TypedQuery<Integer>
,但我实际上只想返回一个整数:1。目前我正在使用Mockito来创建我的模拟,我对此很陌生。
有没有办法测试这一点?
谢谢!
假设你有类实体管理器,查询。您可以像下面这样模拟您的测试。(mock(), any(), when() ...方法在莫基托)
int result = 1;
Query query = mock(Query.class);
EntityManager entityManager = mock(EntityManager.class);
when(entityManager.createQuery(any(), any()).thenReturn(query);
when(query.getSingleResult()).thenReturn(result);
模拟EntityManager
,然后你可以预定义返回值。 Mockito.doReturn(1).when(entityManagerMock).createQuery(any(String.class), any());