我有以下代码,需要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
的声明
答案 0 :(得分:1)
也许应该这样尝试:
softmax
答案 1 :(得分:0)
如果您使用的是Junit 4及更高版本,则可以使用:
assertThrows(UnsupportedEncodingException.class, () -> {
nameOfObjectThatThrows.nameOfMethodThatThrows();
});
这类似于您通过基本断言它是从特定方法抛出而绕过null指针的方式。