gpt4 book ai didi

java - 如何为返回 IOException 的 ObjectMapper.writeValueAsString(object) 编写单元测试

转载 作者:行者123 更新时间:2023-12-02 01:47:15 24 4
gpt4 key购买 nike

我正在为ObjectMapper().writeValueAsString(object)编写单元测试。我有一个捕获 IOException 的 catch block 。我需要对这个 catch block 进行单元测试。

我需要知道在哪种情况下,ObjectMapper 返回IOException

要抛出 JsonProcessingException,我已经找到了 answer

但是我没有发现任何抛出 IOException 的场景。

 protected void logJsonForMetrics(final Logger logger,
final Object object)
{
try
{
final String jsonString = new ObjectMapper().writeValueAsString(object);
logger.info(jsonString);
}
catch (final JsonProcessingException e)
{
LOGGER.error("Unable to create a json object" + e);
}
catch (final IOExcepton e)
{
LOGGER.error("Error while logging metric " + e);
}
}

我想要一个返回 IOException 的场景。

最佳答案

这个writeValueAsString()很可能不会抛出IOException,因为它在内部使用StringWriter来写入值。来自 documentation :

[...] Functionally equivalent to calling writeValue(Writer,Object) with StringWriter and constructing String [...]

如果您想检查 IOException,您需要使用 writeValue() 方法并提供一个 Writer 对象,该对象将抛出IOException

请记住,从版本 2.1 开始,IOException“抛出”语句已从 writeValueAsString() 中删除(很可能是因为该异常不再抛出) )。

关于java - 如何为返回 IOException 的 ObjectMapper.writeValueAsString(object) 编写单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57447862/

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