为了测试我的程序,我需要模拟一个方法调用,如:
entityManager.createQuery("SELECT...", Integer.class).getSingleResult()
createQuery
部分返回TypedQuery<Integer>
,但实际上我只想返回一个整数:1。
目前我正在使用Mockito来创建我的模拟,我对此很陌生。
有没有办法测试这个?
谢谢!
答案 0 :(得分:1)
假设您有类EntityManager,Query。您可以像下面那样模拟您的测试。 (mock(),any(),when()...方法在Mockito中)
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);
答案 1 :(得分:0)
模拟EntityManager
,然后您可以预先定义返回值。 Mockito.doReturn(1).when(entityManagerMock).createQuery(any(String.class), any());