【问题标题】:Need to Cover UnsupportedEncodingException for URLEncoder.encode需要为 URLEncoder.encode 覆盖 UnsupportedEncodingException
【发布时间】:2022-06-12 23:27:54
【问题描述】:

我需要为URLEncoder.encode 覆盖UnsupportedEncodingException,但没有出现异常。 我的代码是;

try {
    return URLEncoder.encode("!@#", "UTF-8");
} catch (UnsupportedEncodingException e) {
    System.out.println("exeption:"+e.toString());
}

上面的代码我尝试了各种输入,但没有得到UnsupportedEncodingException

【问题讨论】:

  • 如果你想在非 Groovy 类中存根静态方法,你需要额外的工具。使用 Spock 的板载意味着您​​无法做到这一点。您需要 Sarek、Mockito(内联模拟生成器)、PowerMock 或其他具有类似功能的工具。

标签: java groovy spock


【解决方案1】:

潜在的“不支持的编码”是指函数中的第二个参数。 “UTF-8”是一种有效的编码,因此您的代码不会引发错误。 如果要抛出异常,可以将其更改为 URLEncoder.encode("!@#", "UTF-9");,因为 UTF-9 不是真正的编码。

如果你想知道如何处理异常对象you can learn more here.

【讨论】:

  • 这并不能解决 OP 的问题。他想通过单元测试在他的代码中涵盖这一部分。更改生产代码以引发代码本应避免的异常是没有意义的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多