From Zero to Hero: Test-Driven Development in C#

From Zero to Hero: Test-Driven Development in C#

English | MP4 | AVC 1920×1080 | AAC 44KHz 2ch | 66 Lessons (5h 41m) | 1.18 GB

Master the craft of Test-Driven Development from the basics to the most advanced concepts
Test-Driven Development (or TDD for short) is one of the most essential software development practices. It is a practice based on the simple idea that instead of writing our code first and then later writing tests for it, we write our tests first, and then we write code that makes those tests pass. This approach has many advantages, from productivity gains to ensuring that our work doesn’t get out of scope to ultimately writing better, focused code with cleaner interfaces and looser coupling. TDD can change the way we think about building software. In this course, Gui Ferreira will teach you everything you need to know to practice TDD, from the most basic concepts to some very advanced ones and make it part of your software development lifecycle.

Table of Contents

1 Welcome
2 What will you learn in this course
3 Who is the course for and prerequisites
4 What is TDD
5 Benefits and drawbacks of TDD
6 Test-First_ vs _Test-After_
7 How to define a Unit in Unit Testing
8 Red-Green-Refactor cycle
9 The 3 Rules of TDD
10 Incrementalism
11 Section recap
12 The example we will work on
13 Creating a Testing List
14 Writing the first Tests
15 Using Tests as Documentation
16 Section recap
17 The example we will work on
18 Writing application level tests
19 What is a Test Double
20 Building Dummies
21 Building Stubs
22 Building Spies
23 Building Mocks
24 Building Fakes
25 Fixtures, Setup, and Teardown
26 How to TDD on Integration Testing
27 Test-driving a Storage Adapter
28 Test-driving a REST API
29 Section recap
30 The example we will work on
31 Detroit vs London school
32 What is the Detroit School style_
33 What is the London School style_
34 Practicing TDD in a London School style
35 Section Recap
36 Naming Tests
37 How to organize tests
38 Applying Act-Arrange-Assert
39 Using 1 Assertion per test
40 Start from the end
41 Improving test readability
42 How to solve bugs with TDD
43 What are TDD Driving Patterns
44 Driving Patterns Fake It
45 Driving Patterns Triangulation
46 Driving Patterns Obvious Implementation
47 The Four Rules to Simple Design
48 Anti-patterns and how to avoid them
49 Section recap
50 TDD in Agile software development and DevOps
51 How BDD and ATDD relate to TDD
52 How TDD relates to the Testing Pyramid
53 TDD and Source Control
54 Pair Programming when doing TDD
55 Defining Team testing policies
56 The value of Code Coverage when doing TDD
57 Using Mutation Testing to improve TDD skills
58 Handling Objections and Challenges to TDD Adoption
59 Section recap
60 The example we will work on
61 What is Legacy Code
62 How to use Approval Testing
63 Refactoring to Support Testing
64 Test-driving new Behaviour
65 Section recap
66 Conclusion

Homepage