[英]unable to mock collection objects
如何模拟这个特定的代码段?
Collection<SeoUrlParam> params = getUrlState().getParameters();
我已经嘲笑了
urlState = mock(UrlState.class);
但是我不确定如何模拟实际上是一个类的params集合
您可能不想嘲笑该集合。 您希望集合中存在一些真实的数据,然后让代码从那里操作它。
现在,按照调用的布局方式,您可能有两个模拟对象-一个用于生成getUrlState()
的模拟结果,另一个用于实际从getParameters()
返回一个集合。
我不确定您使用的是哪种类型的电话,因此我将对其进行介绍。 但是,该原理适用。
// Assuming you have the appropriate mock for getUrlState defined
SeoUrlParamHolder parameterHolderMock = mock(SeoUrlParamHolder.class);
Collection<SeoUrlParam> dummyData = Collections.singletonList(new SeoUrlParam());
when(urlState.getUrlState()).thenReturn(parameterHolderMock);
when(parameterHolderMock.getParamters()).thenReturn(dummyData);
不要嘲笑集合对象。 集合本身通常没有足够的逻辑,因此值得对逻辑进行存根。
将您的收藏视为价值对象,并根据需要创建真实的收藏。 如果您要模拟集合中的单个对象,那很好,我强烈建议您这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.