J'ai essayé de basculer J'ai essayé de faire ce qui suit mais la demande continue de passer à travers: Ouvrir code>, la version Open-Uri, et je ne réussis pas.
OpenURI::OpenRead.should_receive(:open).and_return("Whatever for now")
3 Réponses :
Je recommanderais d'utiliser quelque chose pour balancer le réseau à la place. Je crois que le favori actuel pour ce faire est fausseweb [ docs ]. Vous pouvez également vous intéresser à FakeWeb-Matchers pour RSPEC. P>
hélas, je pense que FakeWeb pourrait ne pas fonctionner avec ouvert () code>, en fait, it stubs
net :: http code>, donc je ne sais pas si cela fonctionnera. Toute chance d'utiliser
ouvert () code>? :) p>
Ouvrir () CODE> est un ajustement parfait pour lequel le code va donc utiliser
net: http code> directement se sentir faux. :) J'ai passé plus de temps sur Google et j'ai trouvé une autre question de dépassement de pile qui m'a aidé. Mais merci d'avoir essayé!
J'ai trouvé une solution ici sur le débordement de la pile après plus de temps sur Google (je ne peux pas croire que je ne l'ai pas trouvé auparavant).
Explication prise de Voici et écrit par Tony Pitluga Strong> (non lié). P> Si vous appelez votre sommeil dans le contexte d'un objet, vous devez le faire monter sur l'objet [...] Alors je l'ai fait et tout a fonctionné: P>
La clé est, pour endormir le sommeil sur tout ce que "soi" est dans le contexte où le sommeil est appelé. P>
blockQuote> let(:read) { mock('open') }
it "should return the new log-level when the log level was set successfully" do
read.stub(:read).and_return('log-level set to 1')
kannel.should_receive(:open).and_return(read)
kannel.set_log_level(1).should == 1
end
Joli! Je pense que c'est raisonnable de modifier cela et de la publier comme solution pour ouverte () code> et accepter votre propre réponse. Il peut être difficile de trouver le
dormir () code> article lors de l'embaspation
ouverte () code>.
Très bon point sur l'encaissement sur le contexte de soi. Cela m'a aidé à résoudre un problème similaire, merci!
J'ai mis à jour votre code. Explication ici: Stackoverflow.com/a/11258596/608361
Voici ce que je fais dans ma spécification, je fais ce qui suit: p>
Je pense que c'est un excellent moyen de contourner ce genre de problème. Merci de me le rappeler :)
En outre, gateway.any_instance.stub_chain (...) code>