Rspec: comment puis-je accéder à ce que le scénario est marqué avec dans le scénario?
-
27-10-2019 - |
Question
J'ai un scénario rspec qui ressemble à:
scenario "some description of the scenario", :js => true, :slow => true, :wip => true do
sleep 60
...
Mais je voudrais appeler sleep
conditionnel à ce que le scénario est marqué avec quelque chose comme:
scenario "some description of the scenario", :js => true, :slow => true, :wip => true do
sleep 60 if tags[:slow] && !tags[:wip]
...
Je serais reconnaissant toute aide.
La solution
Depuis rspec ne dispose pas d'une méthode scenario
, je devine que vous utilisez capybara ou le steak et qu'il est vraiment juste un alias pour it
. Dans ce cas, rspec fait référence interne à ce bloc de code comme un « exemple », et vous pouvez accéder aux méta-données comme ceci:
sleep 60 if example.metadata[:slow] # sleep if example is tagged with :slow => true
Vous pouvez aussi mettre les métadonnées sur le groupe par exemple, le bloc describe
qui entoure les différents exemples. Voir ceci: http: // relishapp. com / rspec / rspec-core / v / 2-6 / dir / métadonnées / métadonnées définies utilisateur