J'ai un modèle et une méthode à l'intérieur qui est défini comme suit:Comment faire un talon retourne une valeur de hachage
class Farm < ActiveRecord::Base
def flags
#has other code which returns a flag_details hash eg:
# flag_details['flag1'] = true;
# flag_details['flag2'] = false;
end
end
Maintenant je dois écrire un test pour vérifier qu'un div particulier est affichée sur la base de la indicateurs qui sont définis/désactivés. Et je veux écrire un bout pour pouvoir retourner ces drapeaux et ensuite tester si la page affiche la div correcte. Comment puis-je corriger le code suivant, pour obtenir ce que je veux:
scenario "display div named flower when flag1 or flag2 is false" do
farm.stub(:flags).and_return("flag1" => false, "flag2" => false)
if !farm.flags['flag1'] || !farm.flags['flag2']
expect(page).to have_selector('div.flower', text: "4")
end
end
Je suis un débutant en rubis, rails et rspec, de sorte que toute aide sera grande. J'ai aussi essayé d'utiliser la méthode suivante, mais cela n'a pas fonctionné:
farm.stub(:flags[]).with('flag1').and_return(false)
farm.stub(:flags[]).with('flag2').and_return(false)
J'ai vérifié également cette documentation (https://www.relishapp.com/rspec/rspec-mocks/v/2-4/docs/method-stubs) mais n'a pas obtenu ma réponse. Tous les autres liens qui pourraient être utiles dans ce domaine, sont vraiment appréciés!
Merci!
C'est un bon point, je vais changer selon cette directive. A ma question, je devrai accepter la réponse donnée par @theTRON –