Learning Hours by Tag
Find a learning hour by a particular tag:
Approval Testing
- Leap Years with Approvals
- Data Driven testing with Approvals
- Discover and Formulate Scenarios
- Designing a Printer
- Test Driving Development with Approvals
- Filtering output that varies
Behavior Driven Development
- Leap Years with Approvals
- Data Driven testing with Approvals
- BDD Process
- Using TDD to write a Leap Years function
- Example-guided design
- Discover and Formulate Scenarios
- Designing a Printer
- Double-Loop TDD
- Test Driving Development with Approvals
- Gherkin intro
- Outside-in TDD
C/C++ Programming
- Supplying User Input via stdin
- Refactoring Without Tools
- Testing Pure Functions
- Sandboxing Introduction
- TDD a state machine
- From Struct to Class
- Extracting Data Clumps
- Parameterized Tests in Doctest
- Test Fixture Introduction
- TDD a lamp microcontroller
- Test Fixture design
- Move the patient into the surgery
- Cover the patient with tests
- Refactor for testability
- Return the patient
TextTest (Approval Testing Tool)
- Supplying User Input via stdin
- Sandboxing Introduction
- Filtering output that varies
- TDD with TextTest
Architecture
- Simon Brown's C4 model - Intro
- Modelling vs Diagramming
- Simon Brown's C4 model - Container diagram
- Divio Documentation System
- User Documentation and code snippets
- Architecture Decision Records
Reading Code
Legacy Code
- Code Reading - Identifying Code Smells
- Renaming Variables, Fields and Types
- Reading by Renaming
- Common Code Smells
- Identify Paragraphs in Long Methods
- Lift-Up Conditional Introduction
- Lift-Up Conditional on Gilded Rose
- Simplify Conditional
- Strategy - Peel
- Strategy - Slice
- Move the patient into the surgery
- Cover the patient with tests
- Refactor for testability
- Return the patient
DevOps
Teamwork
Refactoring
- Vocabulary for Refactoring
- Replace Nested Conditional with Guard Clauses
- Misconceptions about Refactoring
- Primitive Obsession
- Refactoring Without Tools
- Renaming Variables, Fields and Types
- Design in the Red step
- Change Signature
- From Struct to Class
- Extracting Data Clumps
- Identify Paragraphs in Long Methods
- Idiomatic Code
- Keyboarding skills
- Lift-Up Conditional Introduction
- Split Loop
- Replace Conditional With Polymorphism
- Refactoring Golf
- Mending Law of Demeter Issues with Refactoring Tools
- Lift-Up Conditional on Gilded Rose
- Parallel Change
- Roll Up Loop
- Simplify Conditional
- Split Phase
- Split Variable
- Refactor for testability
- Return the patient
Small Steps
- Using TDD to write a Leap Years function
- Design in the Red step
- Example-guided design
- Golden Rule of TDD
- Selecting and ordering test cases
- TDD cycles
- Test Order
- TDD a state machine
- Iterative or Incremental
- TDD Fluency
- TDD with a list
- Make a test list
- TDD a lamp microcontroller
- Parallel Change
- Take Smaller Steps
- Triangulation
- Slicing a task using ZOMBIES
- Adding Behavior Instead Of Breaking Behavior
- Outside-in TDD
Test Design
- Asserting on Collections of Objects
- Benefits of Arrange - Act - Assert
- Test Desiderata
- Unit Tests Should Find Bugs
- Test Names
- Test Doubles Intro
- When you need a stub
- Arrange - Act - Assert
- Parameterized Tests in Doctest
- Test Fixture Introduction
- Four Pillars of a Good Test (Khorikov)
- Parameterized Tests
- Characteristics of Unit tests
- Start with the Assertion
- Test a Bug
- Three parts of a test
- Unit Test FIRST properties
- Stubbing Dependencies
- When you need a spy
- Slicing a task using ZOMBIES
- Custom Assertions
- Test Fixture design
- Test Fixtures - Readability vs Duplication
- Styles of Unit Tests
- Test data builders
- Faking Dependencies
- When you need a fake
- When you need a mock
- Gherkin intro
- Mocking Dependencies
- When to use a Test Double
Test Doubles
- Test Doubles Intro
- When you need a stub
- Stubbing Dependencies
- When you need a spy
- Faking Dependencies
- When you need a fake
- When you need a mock
- Move the patient into the surgery
- Mocking Dependencies
- Cover the patient with tests
- When to use a Test Double
Designing Unit Testable code
- Beck's 4 rules of simple design
- The Dependency Inversion Principle
- Reading by Renaming
- Overdesign
- Testing Pure Functions
- Bottom-up design
- Testing Private Methods
- Mending Law of Demeter Issues with Refactoring Tools
- Identify and Resolve Law of Demeter Violations
- Strategy - Peel
- Strategy - Slice
- Complexity / Collaborator quadrant analysis