为了账号安全,请及时绑定邮箱和手机立即绑定

如何避免 Junit 中的 UnsupportedEncodingException

如何避免 Junit 中的 UnsupportedEncodingException

慕姐8265434 2021-06-28 17:43:59
我有以下代码需要UnsupportedEncodingException通过 try-catch 或 throws 声明来处理,但我不想使用它们。  @Test  public void serializeAndDeserializeUTF8StringValueExpectingEqual() {    String stringValue = "\u0048\u0065\u006C\u006C\u006F";    String deserializedStringValue = serialzeAndDeserializeStringValue(stringValue);    assertThat(deserializedStringValue.getBytes("UTF-8")).isEqualTo(stringValue.getBytes("UTF-8"));  }例如我避免NullPointerException使用assertThatNullPointerException().isThrownBy如下  @Test  public void serializeAndDeserializeNullStringValueExpectingEqual() {    String stringValue = null;    assertThatNullPointerException()        .isThrownBy(() -> OutputStreamUtil.serializeString(stringValue, oStream));  }有什么方法可以避免使用 try-catch 或 throws 声明 UnsupportedEncodingException
查看完整描述

2 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

也许应该这样尝试:


 @Test

 public void serializeAndDeserializeUTF8StringValueExpectingEqual()  {

        String stringValue = "\u0048\u0065\u006C\u006C\u006F";

        String deserializedStringValue = new String(stringValue);


        Throwable thrown = catchThrowable(() -> deserializedStringValue.getBytes("UTF-8"));


        assertThat(thrown).isExactlyInstanceOf(UnsupportedEncodingException.class);

    }


查看完整回答
反对 回复 2021-07-07
?
慕森王

TA贡献1777条经验 获得超3个赞

如果您使用的是 Junit 4 及更高版本,则可以使用:


assertThrows(UnsupportedEncodingException.class, () -> {

    nameOfObjectThatThrows.nameOfMethodThatThrows();

});

这类似于您绕过空指针的方式,基本上断言它是从特定方法抛出的。


查看完整回答
反对 回复 2021-07-07
  • 2 回答
  • 0 关注
  • 198 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信