如何在 Java 中模拟嵌套方法



为了测试我的程序,我需要模拟一个方法调用,如下所示:

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());

相关内容

  • 没有找到相关文章

最新更新