Concombre Caractéristiques et Définitions de l'Étape
Je suis nouveau sur le Concombre de test.
J'ai créé deux fonctions de fichiers:
events.feature
partner.feature
et de mon étape de définitions dans un step_definitions dossier:
./step_definitions/
events.rb
partner.rb
Il semble que le Concombre de recherche dans tous les .rb fichiers pour l'étape de l'information.
Est-il de toute façon de la restriction de la fonction d'oeil à une étape spécifique du fichier de définition?
La raison pour laquelle je veux faire cela, c'est parce que je suis Ambigu match des erreurs, même quand j'utilise l'option --deviner drapeau.
La raison pour laquelle je veux faire, c'est pour les raisons suivantes. Je suis en train de tester un CMS, et que vous souhaitez tester chacun des différents types de contenu (événements & partenaires) dans des fonctions séparées.
événements.fonction
Feature: Add partner
As an administrator I can add a new partner
Scenario: Create partner
Given I am logged in
When I create a partner
Then I should see content
partenaire.fonction
Feature: Add event
As an administrator I can add a new event
Scenario: Create event
Given I am logged in
When I create an event
Then I should see content
Juste se concentrer sur le " alors que je devrais voir le contenu qui est dans les deux scénarios, l'erreur se produit parce que dans le .rb fichiers dont j'ai besoin pour inclure:
partenaires.rb
Then /^I should see content$/ do
BROWSER.html.should include('SOME PARTNER CONTENT')
end
événements.rb
Then /^I should see content$/ do
BROWSER.html.should include('SOME EVENT CONTENT')
end
ce qui signifie qu'il est l'ambiguïté d'un match de "je devrais voir le contenu".
Je sais qu'il existe différentes façons de structurer le présent, c'est à dire que je pouvais créer un contenu de la fonction, et le scénario d'utilisation décrit:
Feature: Add content
As an administrator I can add a new content
Scenario Outline: Create content
Given I am logged in
When I create an <content type>
Then I should see <example content>
Examples:
|event |March Event |
|partner |Joe Blogs |
Mais je ne veux pas le faire parce que je veux encapsuler chaque type de contenu dans leur propre fonctionnalité de test.
Donc en gros j'ai besoin de travailler sur la façon d'effectuer l'étape des fichiers en fonction de la fonctionnalité que je suis en train de tester.
OriginalL'auteur JonB | 2011-08-03
Vous devez vous connecter pour publier un commentaire.
Concombre toujours en charge tous les fichiers et je ne pense pas qu'il existe un moyen de modifier ce comportement. Concernant votre problème avec ambiguë étapes - la solution est facile d'ajouter des paramètres à vos mesures
Et dans les scénarios viens de l'appeler comme ça
Alors que je devrais voir "PARTENAIRE"
OriginalL'auteur iafonov
Je ne vois rien de mal avec l'approche alternative que vous proposez. La séparation de l'étape de définitions dans la logique des domaines de sens. Cependant, il semble que vous tentez peut-être de trop loin, et qui va conduire à une bonne quantité de code dupliqué et les questions ambiguës de matches que vous voyez maintenant. Je recommanderais de faire quelque chose comme ceci:
Et, de même, dans votre cas fonctionnalité:
Alors vous pourriez la suite dans un autre
step_definitions/common_steps.rb
fichier:Cette étape n'a rien de partenaire/l'événement précis à ce sujet. Au lieu de cela, les scénarios contiennent les données des chaînes de caractères spécifiques pour les caractéristiques de votre.
Si vous travaillez sur une application Rails, le concombre-rails gem va réellement créer un tas de mesures communes pour le test des applications web pour vous. Même si vous n'êtes pas à l'aide de Rails, il peut être utile de prendre un coup d'oeil à certains de ces étapes.
OriginalL'auteur ry.
J'ai été à la recherche pour cela, mais il ne semble pas possible "out of the box".
Ma solution est de différencier les étapes de toujours utiliser une sorte de description supplémentaire, comme le nom de la classe, par exemple:
Ces "code du bâtiment" les descriptions sont tous vous avez besoin de ne pas réutiliser les étapes entre les différents fichiers /domaines.
OriginalL'auteur yagooar