Refactoring is easier
Avoids regression, no more deploy and pray
This is required when you want to do CI/CD successfully.
New comers can easily contribute to the team
Somehow an indicator of code complexity
When part of your code is hard to test, it means that it you have to break things up, simplify things
These are tests that tests certain "units" of you code.
These are tests that tests integration between services.
These are tests that tests the user interface of our application.
Feature: Guess the word
# The first example has two steps
Scenario: Maker starts a game
When the Maker starts a game
Then the Maker waits for a Breaker to join
# The second example has three steps
Scenario: Breaker joins a game
Given the Maker has started a game with the word "silky"
When the Breaker joins the Maker's game
Then the Breaker must guess a word with 5 characters