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

时间:2011-02-02 02:12:51

标签: ruby file-io rspec

我有一个简单的FileCreator Ruby类,它有一个方法create,它在我的桌面上创建一个空白的txt文件。使用RSpec,我将如何测试此create方法以确保 文件是否已创建,无需创建文件?我会使用RSpec::Mocks吗?有人可以指出我在正确的目录?谢谢! enter image description here

3 个答案:

答案 0 :(得分:8)

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

Dir.glob(File.join(File.expand_path("~/Desktop"), "File*.txt")).length.should == 100

使用Mocks:你可以做这样的事情来验证File.open方法实际上是被调用的(为了测试实际创建的文件,你可能想要考虑实际创建像第一个这样的文件我回答的一半)。

File.should_receive(:open).exactly(100).times

答案 1 :(得分:2)

你也可以尝试使用FakeFS之类的东西来模仿实际的文件系统。

答案 2 :(得分:0)

最简单的方法如下:

FileCreator.count.should eq 100