Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何使用RSpec测试文件创建?_Ruby_File Io_Rspec - Fatal编程技术网

Ruby 如何使用RSpec测试文件创建?

Ruby 如何使用RSpec测试文件创建?,ruby,file-io,rspec,Ruby,File Io,Rspec,我有一个简单的FileCreatorRuby类,它有一个方法create,在我的桌面上创建一个空白的txt文件。使用RSpec,我如何测试这个create方法以确保 该文件已创建,而无需创建该文件?我会使用RSpec::mock?有人能给我指一下正确的目录吗?谢谢 调用文件\u creator.create(100)后,您可以在文件夹中搜索所有文件*.txt文件,并确保计数匹配。(确保您的规范在完成后删除测试文件) 使用模拟:你可以做这样的事情来验证文件.OPENT < /Cult>方法实际上被

我有一个简单的
FileCreator
Ruby类,它有一个方法
create
,在我的桌面上创建一个空白的txt文件。使用RSpec,我如何测试这个create方法以确保 该文件已创建,而无需创建该文件?我会使用
RSpec::mock
?有人能给我指一下正确的目录吗?谢谢

调用
文件\u creator.create(100)
后,您可以在文件夹中搜索所有
文件*.txt
文件,并确保计数匹配。(确保您的规范在完成后删除测试文件)

使用模拟:你可以做这样的事情来验证<代码>文件.OPENT < /Cult>方法实际上被调用(为了测试文件实际上是被创建的,但是,你可能想考虑实际创建文件,像我的答案的前半部分)。< /P>


您也可以尝试使用模拟实际文件系统的方法。

最简单的方法如下:

FileCreator.count.should eq 100

这就是我认为我必须做的事情。我想知道的是,是否有一种方法可以使用模拟对象或其他东西,这样我就不必首先创建文件了?
File.should_receive(:open).exactly(100).times
FileCreator.count.should eq 100