我有下面的搜索码
SearchRequestBuilder builder = client.prepareSearch(indexRange).setTypes(module).setSize(json.getPageSize())
.setFrom(json.getOffset()).setFetchSource(prepareFieldListToLoad(), prepareFieldListToIgnore())
.setExplain(false);
如何使用mockito模拟junit测试?
1条答案
按热度按时间dw1jzc5e1#
从这个片段中还不清楚
client
被示例化。不管发生什么情况,您都需要模拟该客户机对象。一旦你嘲笑了它,你就可以对它设定期望值,这样当它prepareSearch
方法时,它会返回一些东西——可能是另一个模拟。然后您需要对prepareSearch
打电话,等等。由于链接,您最终将需要许多模拟:
对客户的嘲弄
preparesearch调用返回的对象的模拟
settypes调用返回的对象的模拟
setsize调用返回的对象的模拟
setfrom调用返回的对象的模拟
setfetchsource调用返回的对象的模拟
setexplain调用返回的对象的模拟
您可以考虑对
prepareSearch
如果那些“set”方法只是简单的setter,则调用。然后测试将调用对象的真正setter,但它仍然允许您模拟对对象的其他更广泛的调用。或者,如果这听起来像是太多的手动设置,您可以使用mockito的return\u deep\u存根:https://www.javadoc.io/doc/org.mockito/mockito-core/2.6.9/org/mockito/answers.html
深树桩示例:https://idodevjobs.wordpress.com/2015/04/09/mockito-deep-stubs-example/
其他来源:
http://jakegoulding.com/blog/2012/01/09/stubbing-builder-pattern-in-mockito/
如何用mockito模仿建设者