我有一个模拟对象:
HttpUriRequest request = Mockito.mock(HttpUriRequest.class);
我的代码在上面调用
request.setHeader(key, value);
调用方法value
时,模拟如何返回getFirstHeader()
request.getFirstHeader(key).getValue();
调用的参数在哪里key
,期望的收益value
是setHeader
什么?
request.getFirstHeader(key)
返回Header
具有方法的类型的对象getValue()
我找到了解决自己问题的方法:
final MutableWrapper<String> stringWrapper = new MutableWrapper<>();
Mockito.doAnswer(new Answer<Void>() {
@Override
public Void answer(InvocationOnMock invocation) throws Throwable {
stringWrapper.wrap(invocation.getArgumentAt(1, String.class));
return null;
}
}).when(request).setHeader(Matchers.eq(HEADER), Matchers.anyString());
Mockito.doAnswer(new Answer<Header>() {
@Override
public Header answer(InvocationOnMock invocation) throws Throwable {
Header header = Mockito.mock(Header.class);
Mockito.when(header.getValue()).thenReturn(stringWrapper.unwrap());
return header;
}
}).when(request).getFirstHeader(Matchers.eq(HEADER));
return request;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句