Now that we understand the workflow, let's put it into practice!
We begin by selecting a small portion of our application and defining its requirements. We picked the Create User feature because many other features depend on it. Specifically, the feature requires us to create an API endpoint, /users, that accepts POST requests, and stores the JSON payload of the request (representing the user) into a database. In addition, the following constraints should be applied:
- The user payload must include the email address and password fields
- The user payload may optionally provide a profile object; otherwise, an empty profile will be created for them
Now that we have our requirements, let's write our specification as E2E tests, using a tool called Cucumber.