java字符串的运用代码_java – 如何使用mockito模拟一个字符串?

我需要模拟一个测试场景,其中我调用String对象的getBytes()方法,我得到一个UnsupportedEncodingException。

我试图实现那使用下面的代码:

String nonEncodedString = mock(String.class);

when(nonEncodedString.getBytes(anyString())).thenThrow(new UnsupportedEncodingException("Parsing error."));

问题是,当我运行我的测试用例,我得到一个MockitoException,说我不能模拟java.lang.String类。

有没有办法使用mockito模拟一个String对象,或者,当我调用getBytes方法时,一个方法让我的String对象抛出UnsupportedEncodingException?

这里有更多的细节来说明这个问题:

这是我想测试的类:

public final class A {

public static String f(String str){

try {

return new String(str.getBytes("UTF-8"));

} catch (UnsupportedEncodingException e) {

// This is the catch block that I want to exercise.

...

}

}

}

这是我的测试类(我使用JUnit 4和mockito):

public class TestA {

@Test(expected=UnsupportedEncodingException.class)

public void test(){

String aString = mock(String.class);

when(nonEncodedString.getBytes(anyString())).thenThrow(new UnsupportedEncodingException("Parsing error."));

A.f(aString);

}

}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部