我对单元测试还比较新。我在Ruby中编写了一个类,它接收一个文件,查找其中给定的正则表达式模式,替换该模式,然后将更改保存回文件。我希望能够为这个方法编写单元测试,但我不知道如何做到这一点。有人可以告诉我如何对处理文件I/O的方法进行单元测试吗?
我对单元测试还比较新。我在Ruby中编写了一个类,它接收一个文件,查找其中给定的正则表达式模式,替换该模式,然后将更改保存回文件。我希望能够为这个方法编写单元测试,但我不知道如何做到这一点。有人可以告诉我如何对处理文件I/O的方法进行单元测试吗?
基本上,这个想法是一样的,FileSystem是您的类的依赖项。因此,在单元测试中引入一个可以被模拟的角色/接口(使您在单元测试时没有依赖关系);该角色中的方法应该是您从FileSystem中所需的所有内容 -
Read() # returns file_contents as a string or string[]
Write(file_contents) # same as above
现在你可以使用模拟对象来返回一个预设的字符串数组,然后你的类就可以处理这个数组。在生产代码中,该角色的真实实现会访问文件系统以返回行数组。