Uploaded image for project: 'Moodle Community Sites'
  1. Moodle Community Sites
  2. MDLSITE-3778

POLICY: Allow multiple Given-When-Then in acceptance tests

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Closed
    • Priority: Minor
    • Resolution: Won't Fix
    • Component/s: Coding style
    • Labels:

      Description

      Since [~davmon] introduced us to Gherkin he also introduced us to the concept that there should be only one given-when-then in each test. It does not make any technical difference, is only a principle.

      Here is a short example from course/tests/behat/course_search.feature

      Then I should see "Successfully moved 2 courses into Science"
      And I wait to be redirected
      And I click on category "Science" in the management interface
      And I should see "Biology Y1"
      And I should see "Biology Y2"
      

      All those 'And' are a bit weird.. and it might be nicer to read if it was:

      Then I should see "Successfully moved 2 courses into Science"
      And I wait to be redirected
      When I click on category "Science" in the management interface
      Then I should see "Biology Y1"
      And I should see "Biology Y2"
      

      This comes from industry best practice:
      http://docs.behat.org/en/latest/guides/1.gherkin.html
      https://github.com/cucumber/cucumber/wiki/Given-When-Then
      http://guide.agilealliance.org/guide/gwt.html

      But its caused a lot of controversy - search the tracker and chat-logs and you will see practically every developer has hit against this.

      Should we stick by this way?

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              rajeshtaneja Rajesh Taneja
              Reporter:
              poltawski Dan Poltawski
              Participants:
              Component watchers:
              Marina Glancy, Eloy Lafuente (stronk7)
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: