【发布时间】:2015-01-13 16:13:48
【问题描述】:
我正在尝试使用 Mockito 对方法进行存根,但要使其正常工作,我需要使用传递给此函数的参数。
这是我现在的代码,但无法编译:
when(layer.createNewPlaylist("playlist1", Mockito.any(UUID.class))).thenReturn(new OnDemandPlaylist("playlist1", "", AdditionalAnswers.returnsArgAt(1)));
总而言之,我希望将第二个参数传递给返回的新对象。
现在,我有这个错误:
The constructor OnDemandPlaylist(String, String, Answer<Object>) is undefined
编辑
我找到了一个使用“旧”方式查询参数的解决方案,并在此处分享。但我想知道是否有更简单的方法使用 thenReturn 语法和 AdditionalAnswers。
when(layer.createNewPlaylist(Mockito.eq("playlist1"), Mockito.any(UUID.class)))
.thenAnswer(new Answer<OnDemandPlaylist>() {
public OnDemandPlaylist answer(InvocationOnMock invocation) {
Object[] args = invocation.getArguments();
return new OnDemandPlaylist("playlist1", "", (UUID)args[1]);
}
});
【问题讨论】: