Mon programme télécharge un fichier zip à partir du web puis l'analyse. Le code lié à l'analyse syntaxique pertinente est:Comment utiliser différentes valeurs de paramètres dans un mock/stub RSpec?
Zip::File.open("real_file.zip") do |zip_file|
# do stuff
end
Dans mon environnement de test RSpec, je voudrais bouchonner ce code pour analyser un fichier faux/faux au lieu du vrai. Plus précisément, je voudrais remplacer la valeur du paramètre "real_file.zip" par "mock_file.zip".
J'ai essayé l'approche suivante:
allow(Zip::File).to receive(:open).and_return(Zip::File.open("mock_file.zip"))
... mais cela empêche l'exécution de code à l'intérieur du bloc (# do stuff
). Je ne veux pas que le contenu du fichier fictif soit retourné par la méthode, mais que rahter soit affecté à la valeur zip_file
pour une utilisation ultérieure. Comment cela peut il etre accompli?
Je pense que vous voulez' permettre (Zip :: File) .à reçoivent (: ouvert) {| & bloc | block.call (Zip :: File.open ('mock_file.zip'))} ' https://www.relishapp.com/rspec/rspec-mocks/v/3-2/docs/configuration-responses/ implémentation en bloC# yield-to-the-caller's-block – mroach