用于模拟输入流的java.io.StreamCorruptedException

时间:2015-05-29 21:08:06

标签: unit-testing mockito junit4

我在模拟socket类和ObjectInputstream类。 这是一个给我的测试用例

java.io.StreamCorruptedException

测试用例如下:

public void test_tryPush() throws IOException {
        ByteArrayInputStream inside = new ByteArrayInputStream("hey".getBytes());

        Mockito.when(socket.getInputStream()).thenReturn(inside);


        input = new ObjectInputStream(socket.getInputStream());

        assertSame(inside, socket.getInputStream());

}

如果我没有删除ObjectInputStream类的输入对象,则测试通过。

但上面的测试给出了以下描述。

Running tests
Test running started
java.io.StreamCorruptedException
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:2109)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:372)
at tests.MockingTest.test_tryPush(MockingTest.java:113)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1661)

Finish

请有人告诉我这里出了什么问题。 我试图模拟客户端套接字。

0 个答案:

没有答案