[英]How to mock nested methods in Java
为了测试我的程序,我需要模拟一个方法调用,如:
entityManager.createQuery("SELECT...", Integer.class).getSingleResult()
createQuery
部分返回一个TypedQuery<Integer>
,但我实际上只想返回一个整数: 1. 目前我正在使用 Mockito 来创建我的模拟,我对此很陌生。
有没有办法测试这个?
谢谢!
假设你有类 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);
模拟EntityManager
,然后您可以预定义返回值。 Mockito.doReturn(1).when(entityManagerMock).createQuery(any(String.class), any());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.