Question

J'ai une application qui repose sur une API 3e appelé PSC, mais je veux isoler mes tests de concombre des appels API à la CFP.

Alors, je l'ai écrit quelques pas de concombre:

When /^we pretend that PSC is up$/ do
  PscV1.default_psc_connection("test user").stub!(:default_connection_is_up?).and_return(true)
end

When /^we pretend like PSC assignments exist for all subjects$/ do
  PscV1.default_psc_connection("test user").stub!(:assignment_exists?).and_return(true)
end

... et ce que ces talons sont censés faire est de faire que le scénario est Concombre que les appels d'API travaillent. Cependant, les talons ne semblent pas persister entre les étapes, de sorte que de nouvelles étapes dans mon scénario ne reçoivent pas les valeurs de retour écrasa, ils essaient de faire un appel d'API réelle, et donc ils échouent.

Y at-il un moyen d'obtenir des talons de persister au moins aussi longtemps que le scénario entier? J'ai talons utilisé avec succès dans d'autres tests de concombre, donc je sais qu'ils travaillent en général, mais c'est la première fois que je l'ai écrit une étape de concombre dont le but est de fournir toute un bout.

Était-ce utile?

La solution

Pour autant que je peux dire, la réponse à savoir si elles persistent est ou non, tout simplement, « non ».

Je fini par écrire une étape combinée qui a fait ce qui suit:

When /^I follow "([^\"]*)" while pretending that PSC is up and assignments exists for all users$/ do |link_text|
  PscV1.stub!(:default_connection_is_up?).and_return(true)
  PscV1.default_psc_connection("test user").stub!(:assignment_exists?).and_return(true)
  click_link link_text
end

... qui fonctionne. Il ne me permet pas de réutiliser les talons, comme leurs propres pas, malheureusement, mais cela fonctionne.

UPDATE Vous pourriez être en mesure de contourner cette limitation en attribuant le talon à une variable de niveau de classe, qui est accessible à partir d'autres étapes dans le même scénario.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top