我们是否愿意嘲笑StreamReader对象?
时间:2020-03-05 18:53:15 来源:igfitidea点击:
我使用流读取器导入一些数据,此刻我在测试中对一个小的示例文件进行了硬编码以完成此工作。
将Mock对象与此配合使用以及如何配合使用是否明智?
解决方案
回答
当测试依赖于流,流读取器和流写入器的代码时,我通常使用memorystream对象进行测试。这里不需要模拟框架。
回答
除非我们要创建StreamReader派生类,否则我看不到任何模拟StreamReader的要点。如果我们需要通过StreamReader提供测试输入,则只需从任何合适的源中读取一些预定义的数据即可。
回答
StreamReader是一个具体的类,因此许多模拟系统都不允许我们对其进行模拟。
但是,将使用TypeMock隔离器。
如果我们需要迫使错误来自阅读器,而不是仅仅让它向被测类提供数据,我们可能会发现要模拟它。如果我们不需要此功能,则可以从其他Stream(例如MemoryStream)构造StreamReader到此为止,我们不需要在磁盘上存储数据。
回答
我们可以使用工厂方法返回TextReader,该TextReader可以是模拟对象,也可以是实际的StreamReader。