CONTENT
1. Introduction to Test-Driven Development
1.1 Introduction to TTD
1.2 Understanding the Benefits and Use of TTD
1.3 Understanding Test Metrics
2. Unit Testing Essentials
2.1 The Unit Under Test
2.2 Testing package
2.3 Test Setup and Teardown
2.4 Operating with Subtests
2.5 The Difference Between a Test and a Benchmark
3. Mocking and Assertion Frameworks
3.1 Interfaces as Dependencies
3.2 Exploring Mocks
3.3 Working with Assertion Frameworks
3.4 Writing Testable Code
4. Building Efficient Test Suites
4.1 Testing Multiple Conditions
4.2 Table-driven Testing in Action
4.3 Use Case – the BookSwap Application
5. Performing Integration Testing
5.1 Supplementing Unit Tests with Integration Tests
5.2 Behavior-driven Testing
5.3 Understanding Database Testing
5.4 Spinning Up and Tearing Down Environments with Docker
6. End-to-End Testing the BookSwap Web Application
6.1 Use Case – Extending the BookSwap Application
6.2 Exploring Godog
6.3 Implementing Tests with Godog
6.4 Using Database Assertions
7. Refactoring in Go
7.1 Understanding Changing Dependencies
7.2 Relying on Your Tests
7.3 Error Verification
7.4 Splitting Up the Monolith
8. Testing Microservice Architectures
8.1 Functional and Non-functional Testing
8.2 Contract Testing
8.3 Breaking Up the BookSwap Monolith
8.4 Production Best Practice
9. Challenges of Testing Concurrent Code
9.1 Concurrency Mechanisms in Go
9.2 Applied Concurrency Examples
9.3 Issues with Concurrency
9.4 The Go Race Detector
9.5 Use case – Testing Concurrency in the BookSwap Application
10. Testing Edge Cases
10.1 Code Robustness
10.2 Usage of Fuzzing
10.3 Property-based Testing
10.4 Use Case – Edge Cases of the BookSwap Application
11. Working with Generics
11.1 Writing Generic Code in Go
11.2 Table-driven Testing Revisited
11.3 Extending the BookSwap Application with Generics
11.4 Testing Best Practices
Course Features
- Lectures 13
- Quizzes 2
- Duration 32 hours
- Skill level Intermediate
- Language English
- Students 13
- Certificate Yes
- Assessments Yes