繁体   English   中英

如何模拟 Java 中的嵌套方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM