我有一個包裝流的類,目的是將該流視爲NetworkStream。但是在單元測試中,使用MemoryStream來驗證功能要容易得多。不過,我注意到MemoryStream和NetworkStream在寫入時實際上並不一樣。使用MemoryStream嘲笑NetworkStream進行單元測試
當我寫入MemoryStream時,流的seek指針被設置爲我寫的內容的結尾。爲了讀出我寫的內容,我必須將Seek指針調回到我寫的內容的開頭。
當我寫入NetworkStream時,流的另一端可以讀取數據而不用調整查找指針。
我假設NetworkStream在內部處理seek指針的概念,並確保即使它將數據填充到另一端的數據流中,也不會調整指針。
我的問題是,什麼是在MemoryStream中嘲笑相同的行爲的最佳方式是什麼?我想我可能只是尋找指針返回相同數量的字節我寫,但似乎cludgy。另外,如果我將這些流中的幾個流堆疊在一起或其他包裝流,他們將如何知道指針是否需要重置?
聽起來對我很好,我認爲事情並沒有太大的意義。我還沒有想過網絡流可能帶來的潛力,謝謝。 –