你会费心去模拟StreamReader对象吗?

时间:2008-09-15 11:02:43

标签: .net mocking

我使用流式阅读器导入一些数据,目前我在测试中对一个小样本文件进行硬编码以完成工作。

使用模拟对象以及如何使用它是明智的吗?

4 个答案:

答案 0 :(得分:3)

除非您正在制作StreamReader派生类,否则我没有看到模拟StreamReader的任何要点。如果您需要通过StreamReader提供测试输入,只需从任何合适的源读取一些预定义数据。

答案 1 :(得分:2)

StreamReader是一个具体的类,所以许多模拟系统都不允许你嘲笑它。 但是,TypeMock Isolator会。

如果你需要强迫来自读者的错误,你可能会发现你想要嘲笑它,而不是仅仅让它为你正在测试的类提供数据。如果您不需要此功能,那么您可能会远远超过constructing来自其他Stream的StreamReader,例如MemoryStream - 这样您就不需要转到磁盘数据

答案 2 :(得分:1)

在测试依赖于流,流读取器和流写入器的代码时,我通常使用memorystream对象进行测试。这里不需要嘲笑框架。

答案 3 :(得分:1)

您可以使用工厂方法返回可以是模拟对象或实际StreamReader的TextReader。