C# · 12月 31, 2021

c# – 什么是一个好的方法来摆脱对StreamReader / FileStream的单元测试的依赖?

这是场景:

我有一种通过FileStream和.NET中的StreamReader读入文件的方法.我想单元测试这个方法,并以某种方式删除对StreamReader对象的依赖.

理想情况下,我希望能够提供自己的测试数据串,而不是使用真实的文件.现在该方法使用了StreamReader.ReadLine方法.为了使这个测试成为可能,我现在正在修改设计的方法是什么?

解决方法 取决于Stream和TextReader.那么你的单元测试可以使用MemoryStream和StringReader. (或者如果需要,可以从测试组件内部加载资源.)

注意ReadLine最初由TextReader声明,而不是StreamReader.