2017-04-06 3 views
1

J'essaye d'écrire un scénario en utilisant specflow où je télécharge un fichier et vérifie si le fichier avec le nom spécifique est téléchargé.La spécification ne génère pas la définition d'étape appropriée

Scenario Outline: Download excel files 

Given I am on the Shipping 

When I download a <downloadfile> file 

Then I should be able to download the file. 

Examples: 

| downloadfile | 

| xyz    | 

| abc    | 

Lorsque je produis le fichier étape suivantes obtient générée dans mon fichier steps.cs:

[When(@"I download a xyz file\.")] 

public void WhenIDownloadAXyzFile_() 

{ 
    ScenarioContext.Current.Pending(); 
} 

Quelqu'un peut-il me dire pourquoi je ne reçois pas dans la définition de l'étape (*.)? Il montre le premier exemple de contenu dans la définition d'étape.

+0

C'est vraiment bizarre. J'ai le même comportement. Une solution de contournement consiste à supprimer toutes les données (tout en dessous de la ligne '| downloadfile |'), puis il semble fonctionner correctement. Ajoutez les données après avoir généré les définitions d'étape. – tnw

+0

essayez d'ajouter des guillemets simples, c'est-à-dire '' – Joel

+0

@ tnw- Le travail est correct. J'ai commenté les données et essayé de générer la définition de l'étape. Merci .. :) – user1943608

Répondre

0

Lorsque l'étape est le texte brut, comme:

When I download a xyz file 

Il n'y a rien que le cadre peut utiliser pour déterminer que « xyz » est un élément que vous voulez capturer. Si vous placez des guillemets autour de ce cadre, vous saurez qu'il est quelque chose à capturer et à utiliser dans votre définition d'étape.

When I download a "xyz" file 

Et

When I download a 'xyz' file 

Est-ce à la fois générer la définition correcte de l'étape. Il est dangereux dans tout cadre basé sur le concombre d'utiliser (. *) Dans la regex de la définition d'étape, à cause de correspondances ambiguës. L'utilisation du (. *) Là où vous le souhaitez affectera une future définition d'étape si vous voulez télécharger un fichier avec une certaine taille, par exemple.

When I download a jpeg file 

Et

When I download a 500kb jpeg file 

Est-ce que les deux correspondent à la même chose. Alors soyez prudent avec ça.