Question

Je viens juste de commencer avec BDD sur un projet web, en utilisant SpecFlow et Watin pour automatiser les choses à travers le navigateur, et je ne suis pas tout à fait sûr de savoir comment écrire mes pas.

Je suis en train de conduire tout des essais, et d'une manière TDD, rien écrire à moins qu'il est nécessaire de faire un laissez-passer de test. (Je suis également l'unité de faire des tests pour conduire les détails, mais cette question est à ce sujet). Une chose que je suis confus au sujet est la navigation entre les pages, et si / comment cela doit être défini dans les spécifications.

Le premier test consiste à entrer quelques détails et veillant à ce qu'ils apparaissent dans une liste. Ma première tentative va quelque chose comme ceci:

Scénario: Ajouter Détails Option 1

Étant donné que je suis sur la page « Accueil »
Lorsque je clique sur « Ajouter Details »
Et j'entre « John Smith » dans le champ Nom
Et je clique sur « Enregistrer »
Puis "John Smith" apparaît dans la liste

Cependant, cela implique de naviguer entre deux pages, donc je ne sais pas si cela doit être explicite - sinon, je viens de supposer que je suis sur la bonne page, ou les étapes qui sont apparemment sans rapport avec ce qui la page que je suis sur (par exemple, « Quand je clique sur Ajouter Details ») ont des assertions pour vérifier quelle page je suis.

Est-ce que nous vérifions les pages avec des étapes explicites dans le scénario?

Scénario: Ajouter Détails Option 2

Étant donné que je suis sur la page « Accueil »
Lorsque je clique sur « Ajouter Details »
Je suis sur la page « Détails Ajouter » Et j'entre « John Smith » dans le champ Nom
Et je clique sur « Enregistrer »
Je suis sur la page "Accueil" Puis "John Smith" apparaît dans la liste

Ou est-ce que nous faisons dans les étapes de l'option 1, mais pas mentionner explicitement?

Par exemple, en cliquant sur le chèque doit-'ajouter des détails de ce que nous finissons sur la bonne page?

public void WhenIClickAddDetils{
    // syntax probably wrong, not important
    Assert.That(IE.Button("AddDetails").exists);
    IE.Button("AddDetails").click();

    Assert.That(IE.PageTitle = "Add Details")); // do we check this here?
}

Ou devrions-nous vérifier que nous sommes sur la bonne page avant d'entrer dans les détails?

public void WhenIEnterDetils{
    Assert.That(IE.PageTitle = "Add Details")); // do we check this here?

    IE.TextField("Name").value = "John Smith";
    // etc
}

Sinon, nous pourrions commencer par

Étant donné que je suis sur la page "Détails Ajouter"

Et il suffit de faire cette étape incluent à partir de la page d'accueil et cliquez sur le « bouton Ajouter Details » pour se rendre à cette page. Bien que cela laisse toujours le même problème avec la navigation Retour à la page d'accueil après que nous cliquons sur « Enregistrer ».

Toutes les pensées?

Était-ce utile?

La solution

Je dirais que vous n'avez pas de le vérifier dans ce scénario. En fait, le test est Given-When-Then (organiser acte-assert), et And I am on the "Add Details" page est en fait un Then (assert) à l'intérieur When (acte), qui ne semble pas juste pour moi.

Mon sentiment profond est qu'il devrait ressembler à ceci:

Scenario: Add Details directs to "Add Details" page

Given I am on the "Home" page
When I click "Add Details"
Then I am on "Add Details" page


Scenario: "Add Details" adds person to the list

Given I am on the "Add Details" page
And I enter "John Smith" in the Name field
And I click "Save"
Then I am on the "Home" page
And "John Smith" appears in the list
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top