J'écris une spécification pour un objet (Sample) qui appelle la méthode d'un autre objet (IO # delete) un certain nombre de fois.Isolement des spécifications à un appel spécifique d'une méthode
Je veux isoler les essais de cette méthode, mais quand je fais ceci:
class Sample
def delete_them
io.delete "file1"
io.delete "folder1"
end
end
describe Sample do
let(:io) { stub.as_null_object }
subject { Sample.new.tap { |s| s.stub(:io).and_return(io) }}
it "deletes file1" do
io.should_receive(:delete).with("file1")
subject.delete_them
end
it "deletes folder1" do
io.should_receive(:delete).with("folder1")
subject.delete_them
end
end
Si je l'appelle plusieurs méthodes, il est pas un problème parce que je suis en utilisant le modèle d'objet nul. Cependant, dans ce cas, quand j'exécute le second test, il se plaint:
1) Sample instance methods#delete_them deletes folder1
Failure/Error: io.should_receive(:delete).with("folder1")
Stub received :delete with unexpected arguments
expected: ("folder1")
got: ("file1")
Y at-il un moyen d'indiquer que tous les appels doivent être ignorés sauf celui que je suis en train de vous assurer est fait?