Mockito:返回传递的参数

斯韦特林·扎列夫(Svetlin Zarev)

我有一个模拟对象:

HttpUriRequest request = Mockito.mock(HttpUriRequest.class);

我的代码在上面调用

request.setHeader(key, value);

调用方法value,模拟如何返回getFirstHeader()

request.getFirstHeader(key).getValue();

调用的参数在哪里key,期望的收益valuesetHeader什么?

request.getFirstHeader(key)返回Header具有方法的类型的对象getValue()

斯韦特林·扎列夫(Svetlin Zarev)

我找到了解决自己问题的方法:

    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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章