首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何告诉Mockito模拟对象在下次调用时返回不同的东西?

在使用Mockito框架时,如果您想要在下次调用时返回不同的值,可以使用thenReturn()thenAnswer()方法来实现。

以下是一个示例代码:

代码语言:java
复制
import org.junit.Test;
import org.mockito.Mockito;
import org.mockito.stubbing.Answer;

import java.util.ArrayList;
import java.util.List;

import static org.mockito.Mockito.*;

public class MockitoTest {

    interface MyService {
        String getData();
    }

    @Test
    public void testMockitoReturnDifferentValues() {
        MyService mockService = mock(MyService.class);

        // 使用thenReturn()方法设置第一次调用返回值
        when(mockService.getData()).thenReturn("First Value");

        // 使用thenAnswer()方法设置第二次调用返回值
        when(mockService.getData()).thenAnswer(new Answer<String>() {
            @Override
            public String answer(InvocationOnMock invocation) throws Throwable {
                return "Second Value";
            }
        });

        // 第一次调用
        String result1 = mockService.getData();
        System.out.println("第一次调用结果:" + result1); // 输出:First Value

        // 第二次调用
        String result2 = mockService.getData();
        System.out.println("第二次调用结果:" + result2); // 输出:Second Value

        // 验证方法调用次数
        verify(mockService, times(2)).getData();
    }
}

在这个示例中,我们首先使用thenReturn()方法设置了第一次调用返回的值为"First Value",然后使用thenAnswer()方法设置了第二次调用返回的值为"Second Value"。在第一次和第二次调用中,我们可以看到返回的值分别是"First Value"和"Second Value"。

在实际使用中,您可以根据需要设置不同的返回值,以满足您的测试需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券