测试审查表明,MemoryStream
总是返回“顺利”的结果。即,如果我们从MemoryStream
400 字节的工作缓冲区中读取 200 个字节,它总是在一次调用中准确返回 200 个字节。如果我们将 4000 字节读入 200 字节的工作缓冲区,它总是正好 20 次迭代,每次正好 200 字节。
问题是MemoryStream
罐子(在现实世界中,极端情况)代表慢流源(如网络或文件)。因此,读取可能不会如此确定地平滑。每个Read
操作都可能返回不确定的读取字节数(例如:8、1、105、20、5、80 ...)
那么将香草MemoryStream
变成(因为缺少更好的词)a的好方法是什么ChaosStream
,其中读取的字节数是 1 和读取请求之间的随机数count
?(请注意,0 表示流结束)。字节本身需要是底层字节,只需对它们进行一些随机/抖动读取以扩展测试覆盖率。