age*_*217 5 ruby file-io unit-testing
我对单元测试还是比较新的.我在Ruby中编写了一个类,它接受一个文件,在该文件中搜索给定的Regex模式,替换它,然后将更改保存回文件.我希望能够为这种方法编写单元测试,但我不知道如何去做.有人能告诉我如何处理文件i/o的单元测试方法吗?
看看这个如何将文件保存到磁盘?
基本上这个想法是一样的,FileSystem是你的类的依赖.因此,引入一个可以在单元测试中模拟的角色/接口(这样在单元测试时就没有依赖性); 角色中的方法应该是FileSystem所需的全部内容 -
Read() # returns file_contents as a string or string[]
Write(file_contents) # same as above
Run Code Online (Sandbox Code Playgroud)
现在您可以使用mock来返回一个固定的字符串数组 - 然后您的类可以处理此数组.在生产代码中,角色的真正实现将命中文件系统以返回行数组.