2010-07-10 23 views
6

J'utilise le concombre comme cadre BDD avec rspec/moka moqueur. Idéalement, nous ne nous moquons pas du comportement du concombre; Cependant, le scénario est exceptionnel ici. Pour vous donner la brève idée du problème ici; J'ai deux caractéristiques du produit et fonctionnalité du panier.Stub avec Rspec/Mocha dans les scénarios de concombre

La fonctionnalité de panier est actuellement en train de se moquer de certains produits provenant du système 3 parties. Et dans la fonction de chariot de course de concombre s'exécute avant la caractéristique du produit. La fonctionnalité du produit utilise un appel réel pour certains scénarios. Idéalement, nous nous attendrions à ce que les stubs de niveau Classe comme Product.stub (: find) soient effacés une fois les scénarios terminés; Cependant, ce n'est pas le cas. Les talons de niveau de classe s'attardent au prochain scénario de concombre et interfèrent avec l'appel.

J'ai utilisé de manière interchangeable du moka et du rspec pour induire les moignons; mais sans succès; dans les deux cas, le talon reste et empêche mon produit de fonctionner après la fonction de chariot. Les deux fonctionnent bien dans l'isolement.

Est-ce que quelqu'un a fait face à un problème similaire de talons ne sont pas réinitialisés dans le concombre? Y at-il un moyen, je peux restaurer le comportement de la classe d'origine?

Toute aide sera appréciée.

Vive

Répondre

8

Pour l'intégration de mocha, vous devez ajouter ce qui suit dans un fichier dans votre fonctions/dossier de support (comme mocha.rb)

require "mocha" 

World(Mocha::Standalone) 

Before do 
    mocha_setup 
end 

After do 
    begin 
    mocha_verify 
    ensure 
    mocha_teardown 
    end 
end 

Le bloc après doit libérer tous les simulacres.

Source: http://gist.github.com/80554

+0

impressionnant. Juste ce dont j'avais besoin pour vider rspec moqueur/stubbing et aller avec moka! :) – Priyank

4

La syntaxe est légèrement différente pour mocha 1.1:

require 'mocha/api' 

World(Mocha::API) 

Before do 
    mocha_setup 
end 

After do 
    begin 
    mocha_verify 
    ensure 
    mocha_teardown 
    end 
end 
Questions connexes