These notes are taken while studying Building a Pragmatic Unit Test Suite | Pluralsight and Testing .NET Code with xUnit.net 2: Getting Started | Pluralsight
Unit Test:
- Verifies small piece of code
- Runs quickly
- Runs in isolation
Goals of Unit Test
- Confidence: Changes don’t break existing functionality
- Move with a faster pace
- Maintain low amount of technical debt

Decouple tests from implementation details as much as possible
Styles o Unit Testing
- Output verification
- State verification
- Collaboration verification
Hexagonal Architecture
- Domain model doesn’t communicate with the outside world, shouldn’t know how is persisted to the DB
- Application services handle all communications, they don’t contain business lgoic. They Translate between the doman and outside world
Logical Phases of Automated Test
- Arrange: Setting things up, create object instances, create data and inputs
- Act: Execute production code, call methods, set properties
- Assert: Check result