我想单元测试一个类,该类以某种协议从流中读取数据。这将需要以特定顺序在流上使用不同的read()方法。 有没有办法像这样模拟流:
MyClass readFrom(InputStream in) {
byte b = in.readByte();
int c = in.readInt();
byte b2 = in.readByte();
return MyClass(b, c, b2);
}
MyInputStream in = Mockito.mock(MyInputStream.class);
when(in.readByte()).thenReturn(0x01); // 0
when(in.readInt()).theReturn(0xDEADBEEF); // 1
when(in.readByte()).thenReturn(0x00); // 2
我发现的唯一-丑陋-的方法是:
MyInputStream in = Mockito.mock(MyInputStream.class);
when(in.readByte())
.thenReturn(0x01) // 0
.thenReturn(0x00); // 2
when(in.readInt()).thenReturn(0xDEADBEEF); // 1