Arrange: arrange the system to be tested in a given state
Act: take the action that is to be tested (perform the test itself)
Assert: check that what should have happened indeed happened
Given the system is in state S1
When I give the command X
Then the system should be in state S2
Given some event Y relevant to the outcome happened
When I give the command X
Then something else happens depending on Y
Given I extended my library book on the 21st
When I return the book on the 22nd
Then I should not be charged a fine
Given I extended my library book on the 21st
When I return the book on the 24th
Then I should be charged a £1 fine
For example "Given Jon borrowed the book 'Sapians' last Wednesday".
e.g, 'Then stock level of the book 'Sapians' has increased', or 'Then there should be 4 copies of 'Sapians' in the library', or 'Then Jon should have been fine £1 for late return'
Scenario: Retuning a book on time incurs no fine
Scenario: Incurring a £1 fine for returning a book late
Scenario: Incurring a £10 fine for returning a damaged book
E.g, all scenarios that show examples of making transfer between accounts require an account number used in each scenario.
@everzet @CiaranMcNulty @lunivore @jennyjmar @tastapod