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
- Printer Design
- Lift Kata with Approvals
- Filtering output that varies
Behavior Driven Development
- Leap Years with Approvals
- Data-Driven Testing with Approvals
- Example Mapping
- Using TDD to write a Leap Years function
- Example-guided design
- Discover and Formulate Scenarios
- Printer Design
- Double-Loop TDD
- Lift Kata with Approvals
- Gherkin intro
- Outside-in TDD
C/C++ Programming
- Supplying User Input via stdin
- Refactoring Without Tools
- Writing tests for 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 the Patient 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 diagrams
- The Divio Documentation System
- User Documentation and code snippets
- Architecture Decision Records
Reading Code
Legacy Code
- Code Smells - Introduction
- 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
- Peel - a strategy for difficult to test code
- Strategy - Slice
- Preparatory Refactoring
- Move the patient into the surgery
- Cover the patient with tests
- Refactor the Patient 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
- Decompose Conditional
- 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
- Preparatory Refactoring
- Refactor the Patient 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
- Fluency with TDD
- 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 - the Osherove pattern
- 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
- Refactoring test inputs with 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
- Writing tests for pure functions
- One function at a time, bottom up
- Testing Private Methods
- Mending Law of Demeter Issues with Refactoring Tools
- Identify and Resolve Law of Demeter Violations
- Peel - a strategy for difficult to test code
- Strategy - Slice
- Complexity / Collaborator quadrant analysis