我使用流式阅读器导入一些数据,目前我在测试中对一个小样本文件进行硬编码以完成工作。
使用模拟对象以及如何使用它是明智的吗?
答案 0 :(得分:3)
除非您正在制作StreamReader派生类,否则我没有看到模拟StreamReader的任何要点。如果您需要通过StreamReader提供测试输入,只需从任何合适的源读取一些预定义数据。
答案 1 :(得分:2)
StreamReader是一个具体的类,所以许多模拟系统都不允许你嘲笑它。 但是,TypeMock Isolator会。
如果你需要强迫来自读者的错误,你可能会发现你想要嘲笑它,而不是仅仅让它为你正在测试的类提供数据。如果您不需要此功能,那么您可能会远远超过constructing来自其他Stream的StreamReader,例如MemoryStream - 这样您就不需要转到磁盘数据
答案 2 :(得分:1)
在测试依赖于流,流读取器和流写入器的代码时,我通常使用memorystream对象进行测试。这里不需要嘲笑框架。
答案 3 :(得分:1)
您可以使用工厂方法返回可以是模拟对象或实际StreamReader的TextReader。