gpt4 book ai didi

java - 是否可以调用一个方法两次,首先调用真正的实现,然后模拟结果?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:35:17 25 4
gpt4 key购买 nike

我正在尝试测试递归方法是否正确地重新诅咒。因此,第一个调用应该是 callRealMethod。但是第二个调用只是为了验证它是否被调用,不应该实际进行调用,而是应该返回一个 stub 结果。

在 Mockito 中有什么方法可以做到这一点吗?

最佳答案

您可以简单地使用 thenCallRealMethod , 其次是常规 thenReturn stub :

import org.junit.Test;

import static org.mockito.Mockito.*;

public class PartialMock {
String doIt() {
return "original";
}

@Test
public void testDoIt() {
PartialMock t = mock(PartialMock.class);
when(t.doIt())
.thenCallRealMethod()
.thenReturn("mocked");

assertEquals("original", t.doIt());
assertEquals("mocked", t.doIt());
assertEquals("mocked", t.doIt());
verify(t, times(3)).doIt();
}
}

关于java - 是否可以调用一个方法两次,首先调用真正的实现,然后模拟结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44121983/

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