zu testen Ich versuche Socket-Kommunikation in Android Java zu testen, aber kann nicht scheinen, eine Scheinfunktion zu bekommen.Android: Versuchen, Sockets
Zunächst einmal mock(Socket.class)
mit Mockito löst eine Ausnahme java.lang.VerifyError
.
So codiert ich meine mock wie so:
public void testMyTest(){
final ByteArrayOutputStream os = new ByteArrayOutputStream();
final ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray());
try{
byte[] buffer = new byte[6];
os.write("poulet".getBytes());
is.read(buffer, 0, 6);
Log.w(LOG_TAG, "Read result:" + (new String(buffer, "UTF-8")));
} catch(IOException e){}
}
Allerdings ist is
nicht aus os
lesen, wenn ich os.write()
nennen. Das rohe Ergebnis ist [[email protected]
und in Zeichenform sieht es wie ������������
aus. Ich habe versucht, os.write()
zu kommentieren, aber nichts hat sich geändert.
Kann jemand einen Eingabestrom verknüpfen, um einen Ausgabestrom zu lesen?
Zu meiner Klassen teste ich gerade
genanntfinal Socket mockedSocket1 = new Socket();
final Socket mockedSocket2 = new Socket();
when(mockedSocket1.getInputStream()).thenReturn(is);
when(mockedSocket2.getOutputStream()).thenReturn(os)
Damit meine Klassen die verknüpfte Ausgang und Eingang erhalten Ströme, die ich mit testen werde.
Vielen Dank!
Dank! Das ist großartig, aber ich habe das Problem mit einem 'PipedInputStream' und einem' PipedOutputStream' gelöst –