如何避免Junit中的UnsupportedEncodingException

时间:2018-08-08 12:07:33

标签: java junit try-catch assertions throws

我有以下代码,需要UnsupportedEncodingException由try-catch处理或引发声明,但是我都不希望使用它们。

  @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或引发UnsupportedEncodingException的声明

2 个答案:

答案 0 :(得分:1)

也许应该这样尝试:

softmax

答案 1 :(得分:0)

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

assertThrows(UnsupportedEncodingException.class, () -> {
    nameOfObjectThatThrows.nameOfMethodThatThrows();
});

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