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