【发布时间】:2021-06-07 03:41:20
【问题描述】:
我是 Java 编程新手,我有以下代码:
import javax.ws.rs.client.ClientBuilder;
public class Foo {
private final Client http;
Foo() {
http = ClientBuilder.newClient().register(CurlRequestFactory.getCurlRequestFactory().get(LOGGER, “someString”));
}
public someMethod() {
Invocation.Builder request = http.target(getURI(“someUri”)).request().header(“someHeader”, “someValue”);
Response response = request.get();
}
}
我想为someMethod() 编写一个单元测试,其中request.get() 会抛出异常。为此,我要求将 request 对象设置为模拟对象。
但我无法这样做,因为它是直接初始化而不是被注入。
我知道我可以模拟一个对象,如果它被注入如下:
Response responseMock = Mockito.mock(Response.class);
Mockito.when(responseMock.get()).thenThrow(new Exception("someMessage"));
但我找不到适合我的场景的任何东西。
PS:我不想使用 Powermock。
【问题讨论】:
标签: java unit-testing mocking mockito