gpt4 book ai didi

java - 我可以使用 doReturn 与 PowerMockito 链接返回吗?

转载 作者:行者123 更新时间:2023-11-29 04:54:47 26 4
gpt4 key购买 nike

我有一个方法调用,需要在第一次调用时返回 valueA,在第二次调用时返回 valueB。我正在使用 PowerMockito spy ,所以如果我只需要返回一个值,它看起来像这样:

PowerMockito.doReturn(valueA).when(mockedObject, "methodName");

看起来我可以像这样进行链式返回:

PowerMockito.when(mockedObject, "methodName").thenReturn(valueA).thenReturn(valueB);

但我需要用 doReturn 指示链式返回,这样真正的 methodName() 就不会在我的 Spy 上调用。

我已经试过了,但是 Eclipse 给我一个错误,说它甚至不会编译:

PowerMockito.doReturn(valueA).doReturn(valueB).when(mockedObject, "methodName");

甚至可以使用 doReturn 和 powermockito 链接返回吗?如果是,怎么办?

最佳答案

从 PowerMock v1.6.5 开始,您可以将多个值传递给 doReturn(Object toBeReturned, Object... othersToBeReturned) .

private static class Example {
public String getValue() {
return null;
}
}

@Test
public void testReturnChain() throws Exception {
Example example = new Example();
Example mockExample = PowerMockito.spy(example);
PowerMockito.doReturn("firstValue", "secondValue").when(mockExample, "getValue");

assertEquals("firstValue", mockExample.getValue());
assertEquals("secondValue", mockExample.getValue());
assertEquals("secondValue", mockExample.getValue());
}

行为与 thenReturn(T value, T... values) 相同: 在调用方法时定义连续的返回值 - 最后一个确定进一步调用的行为。

关于java - 我可以使用 doReturn 与 PowerMockito 链接返回吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34190095/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com