java - Mockito 测试具有调用网关服务步骤的方法

标签 java spring unit-testing mockito circuit-breaker

我正在使用 Spring-Breaker project 对我的代码实现断路器解决方案并正在为其编写测试用例。

考虑以下示例:

@CircuitBreaker
methodA() {
    //some code
    gatewayServiceCall()
    //some code
}

我需要测试 methodA 并使用 CircuitBreaker 超时使其失败,因此我编写了一个测试类来模拟它。

setup() {
    gatewayService = mock(GatewayService.class);
    when(gatewayService.methodName().thenReturn(something);
}

@Test
testMethodA() {
    methodA();
}

如何确保调用 methodA() 并模拟 gatewayServiceCall。

我希望问题很清楚。如果不是,请告诉我。我会尝试进一步详细说明。

谢谢。

最佳答案

你可以写一个 hibernate 的答案:

final Foo fooFixture = new Foo();
Answer<Foo> answer = new Answer<Foo>() {

    @Override
    public Foo answer(InvocationOnMock invocation) throws Throwable {
        Thread.currentThread().sleep(5000);
        return fooFixture ;
    }
};
when(gatewayService.methodName()).thenAnswer(answer);

关于java - Mockito 测试具有调用网关服务步骤的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32743338/

相关文章:

java - Spring RestTemplate : URI is not absolute

java - 在配置中添加 <context :component-scan . ..> 时出现 Spring NoClassDefFoundError org.springframework.beans.FatalBeanException

java - org.apache.tiles.template.NoSuchAttributeException : Attribute 'body' not found

java - 如何让 EasyMock 模拟多次返回一个空列表

java - 我应该在我的 Java Web 应用程序中为此创建一个模型和 DAO 吗?

java - 在 Android 设备上运行 root 命令

java - 如何在 Selenium 中获取 WebElement 的 HTML 代码

c# - 我是否必须在单元测试中伪造一个值对象

Python 模拟 requests.post 抛出异常

java - JMH - 为什么 JIT 不消除我的死代码