我正在尝试在JUnit测试中模拟以下代码
requestData = requestRepository.findByRequestId(requestId);
这样做
@Mock
RequestRepository requestRepository;
@Mock
RequestData requestData;
Mockito.when(requestRepository.findByRequestId(requestId)).thenReturn(requestData);
但是我没有返回模拟对象,而是获得了空值。 模拟MongoDB存储库方法的正确方法是什么。
答案 0 :(得分:0)
如果您不知道这种情况下的请求ID值(它可能是动态值),可以使用Mock.any(<?>.class)
。
示例:
Mockito.when(requestRepository.findByRequestId(Long.class)).thenReturn(requestData);
以上示例仅适用于Long
类型的requestId,如果需要整数,则需要将类更改为Integer
。
答案 1 :(得分:0)
使用基于 SpringRunner 的测试时,请使用@MockBean
声明上下文bean的模拟。