【发布时间】:2022-02-09 16:03:25
【问题描述】:
我想测试一个在其中返回可选客户端的方法。
我想在客户端为空时测试场景。这不是工作代码,但总体看起来像这样
public Optional<String> doSomething(String place) {
Optional<Client> client = Optional.empty();
try {
client = Optional.ofNullable(clientHelper.get(place));
} catch (Ex ex) {
log.warn("Exception occured:", ex);
}
return client.isPresent() ? Optional.ofNullable(client.get().getPlaceDetails(place)) : Optional.empty();
}
我有一个帮助类 clientHelper,如果存在则返回基于位置的客户端,如果不存在则抛出异常。 为了测试,这是我想出的
@Test
public void testClientHelper(){
ClientHelper clientHelper = Mockito.mock(ClientHelper.class);
Optional<Client> client = Optional.empty();
Mockito.when(Optional.ofNullable(clientHelper.get("IN"))).thenReturn(client);
assertEquals( doSomething("IN"), Optional.empty())
}
但它返回异常 -
org.mockito.exceptions.misusing.WrongTypeOfReturnValue:
Optional cannot be returned by get()
get() should return Client
【问题讨论】: