2010-05-18 3 views
2

Je suis assez nouveau dans le monde de RSpec. J'écris un RubyGem qui traite d'une liste de fichiers dans un répertoire spécifié et des sous-répertoires. Plus précisément, il utilisera Find.find et ajoutera les fichiers à un tableau pour une sortie ultérieure.Comment tester l'obtention d'une liste de fichiers dans un répertoire en utilisant RSpec?

Je voudrais écrire une spécification pour tester ce comportement, mais ne sais pas vraiment où commencer en termes de truquer un répertoire de fichiers et stubbing Find.find etc. C'est ce que je peu ont à ce jour:

it "should return a list of files within the specified directory" do 
end 

Toute aide très appréciée!

Répondre

2

Je ne pense pas que vous devez tester la bibliothèque, mais si vous avez une méthode comme

def file_names 
    files = [] 
    Find.find(Dir.pwd){|file| files << file} 
    ........ 
end 

vous pouvez stub la méthode de recherche pour retourner une liste de fichiers comme si

it "should return a list of files within the specified directory" do 
    Find.stub!(:find).and_return(['file1', 'file2']) 
    @object.file_names 
end 

ou si vous voulez mettre les attentes alors vous pouvez faire

it "should return a list of files within the specified directory" do 
    Find.should_receive(:find).and_return(['file1', 'file2']) 
    @object.file_names 
end 
+0

Grand, merci nas. Et un bon point à propos de ne pas avoir besoin de tester la bibliothèque. –

2

Vous pouvez utiliser la gemme .

Questions connexes