TDD by example
TDD is best understood by looking at examples, so let’s take a story and write it TDD-style. We will be working on the feature described by this story:
Story Title:
Changing a username
Story Description:
As a customer
Given I already have an account
When I navigate to my profile page
Then I can update my username
Acceptance Criteria:
The username can only contain between 8 and 12 characters, inclusive:
- Valid: AnameOf8, NameOfChar12
- Invalid: AnameOfChar13, NameOf7
Only alphanumerics and underscores are allowed:
- Valid: Letter_123
- Invalid: !The_Start, InThe@Middle, WithDollar$, Space 123
If the username already exists, generate an error
Let’s not waste any time and implement this story.
Creating the solution shell
We will create a class library called Uqs.Customer
, add a unit testing project to test it called Uqs.Customer.Tests.Unit
, and add them to a solution called TddByExample.sln
. So, let’...