-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Open
Description
Proposal
The current proposal is to introduce the following:
@ScenarioTest
: class-level annotation used to denote that a test class contains steps that make up a single scenario test.@Step
: method-level annotation used to denote that a test method is a single step within the scenario test.
The @Step
annotation will need to provide an attribute that can be used to declare the next step within the scenario test. Steps will then be ordered according to the resulting dependency graph and executed in exactly that order.
For example, a scenario test could look similar to the following:
@ScenarioTest
class WebSecurityScenarioTest {
@Step(next = "login")
void visitPageRequiringAuthorizationWhileNotLoggedIn() {
// attempt to visit page which requires that a user is logged in
// assert user is redirected to login page
}
@Step(next = "visitSecondPageRequiringAuthorizationWhileLoggedIn")
void login() {
// submit login form with valid credentials
// assert user is redirected back to previous page requiring authorization
}
@Step(next = "logout")
void visitSecondPageRequiringAuthorizationWhileLoggedIn() {
// visit another page which requires that a user is logged in
// assert user can access page
}
@Step(next = END)
void logout() {
// visit logout URL
// assert user has been logged out
}
}
Related Issues
binkley, alvinlin123, breinjhel, miguelaferreira, tonit and 46 more