模拟java.nio.ByteBuffer类时出现java.lang.UnsupportedOperationException

nis*_*ant 4 java junit unit-testing mockito

我正在尝试使用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
     }
}
Run Code Online (Sandbox Code Playgroud)

我应该怎样模拟数组方法才能使其工作?我正在使用Java 8。

Dav*_*son 6

就像在Sotirios Delimanolis的评论中一样,您无需模拟此类或容易由诸如的原始组成的类byte []

除了模拟以外,还有许多不同的测试双打(假货,间谍等),对于假货来说,比模拟更好。

只需使用:

byteBuffer = ByteBuffer.wrap("some-string".getBytes());
Run Code Online (Sandbox Code Playgroud)