我有一个包装流的类,目的是将该流视为NetworkStream。但是在单元测试中,使用MemoryStream来验证功能要容易得多。不过,我注意到MemoryStream和NetworkStream在写入时实际上并不一样。使用MemoryStream嘲笑NetworkStream进行单元测试
当我写入MemoryStream时,流的seek指针被设置为我写的内容的结尾。为了读出我写的内容,我必须将Seek指针调回到我写的内容的开头。
当我写入NetworkStream时,流的另一端可以读取数据而不用调整查找指针。
我假设NetworkStream在内部处理seek指针的概念,并确保即使它将数据填充到另一端的数据流中,也不会调整指针。
我的问题是,什么是在MemoryStream中嘲笑相同的行为的最佳方式是什么?我想我可能只是寻找指针返回相同数量的字节我写,但似乎cludgy。另外,如果我将这些流中的几个流堆叠在一起或其他包装流,他们将如何知道指针是否需要重置?
听起来对我很好,我认为事情并没有太大的意义。我还没有想过网络流可能带来的潜力,谢谢。 –