![](/img/trans.png)
[英]java.lang.UnsupportedOperationException at java.nio.ByteBuffer.arrayOffset?
[英]java.lang.UnsupportedOperationException when mocking java.nio.ByteBuffer class
我正在尝试使用Mockito在java.nio中模拟ByteBuffer类,以便在JUnit中进行测试。 我得到一个java.lang.UnsupportedOperationException
我的代码看起来像 -
class TestClass {
@Mock
private ByteBuffer byteBuffer
@Before
public void setup() {
Mockito.when(byteBuffer.array()).thenReturn("some-string".getBytes()); //this line throws java.lang.UnsupportedOperationException
}
}
我应该如何模拟数组方法才能工作? 我使用的是Java 8。
就像在Sotirios Delimanolis的评论中一样,你不需要模拟这个类或者像byte []
这样的原语很容易组成的类。
除了模拟之外,还有许多不同的测试双打 (假货,间谍等),对于假货比假货更好。
只需使用:
byteBuffer = ByteBuffer.wrap("some-string".getBytes());
你得到一个java.lang.UnsupportedOperationException
因为ByteBuffer.array()
是一个最终方法。 因此,Mockito并没有嘲笑它。 这意味着
Mockito.when(byteBuffer.array()).thenReturn("some-string".getBytes());
调用抛出异常的真实方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.