【发布时间】:2017-11-01 01:40:49
【问题描述】:
我正在尝试使用 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。
【问题讨论】:
-
javadoc 中指出,如果此缓冲区不受可访问数组的支持,则会抛出
UnsupportedOperationException。您应该为其分配一个非空缓冲区。 -
为什么要嘲笑它?只需通过包装
getBytes返回的数组来创建它。 -
@Alex 如果我在模拟对象,我如何为它分配一个非空缓冲区?
标签: java unit-testing junit mockito