Assessing Reliability of Tests
- 18m 35s
—Introduction
1m 37s
—Tests Coverage Considerations
2m 30s
—The Value of Tests
2m 1s
—The Quality of Tests
1m 58s
—Introducing the Demo Application
2m 45s
—Adding Properties to a Class
2m 33s
—Identifying Some of the Design Issues
2m 14s
—Summary
2m 53s
Developing an Application the Old Way
- 38m 20s
—Preparing Tests for Properties
1m 54s
—Testing Boundary Conditions
2m 52s
—Improving the Boundary Conditions Tests
2m 31s
—Defining the Circle
2m 41s
—Adding an Operation to the Frame
2m 2s
—Completing Tests for the Operation
3m 2s
—Completing the Feature
1m 50s
—Adding More Tests
2m 23s
—Notes About how to Improve Unit Tests
2m 13s
—Adding Another Feature and Its Tests
3m 33s
—Adding a Concrete Implementation of the Circle
1m 35s
—Trying the Demo Application
1m 24s
—Exposing the Defects
2m 3s
—A Case When It's Better Not to Mock
2m 23s
—Exposing a Serious Defect
3m 3s
—Summary
2m 45s
Guidelines of Redesign for Reliability
- 46m 37s
—How Defects Are Introduced
3m 34s
—How to Avoid Introducing Defects
2m 40s
—How to Improve Tests
2m 33s
—Factoring Out Common Logic From Tests
2m 37s
—Using Common Testing Methods
1m 19s
—Decoupling Library Test Code From Concrete Types
2m 50s
—Completing the Testing Library for Decimal Properties
2m 41s
—Avoiding Null Reference Exceptions
2m 48s
—Introducing the Non-Default Constructor
2m 46s
—Making Plans for Constructor Tests
2m 10s
—Single vs. Multiple Tests per Test Method
3m 0s
—Designing the Library for Constructor Tests
2m 48s
—Beginning the Library Implementation
1m 37s
—Adding Features to the Library
2m 51s
—Completing the Constructor Testing Library
1m 48s
—Making the Constructor Test Pass
1m 39s
—Discussion on Declarative Tests
2m 4s
—Discussion on Remaining Transition Tests
2m 15s
—Summary
2m 28s
Getting the Most Out of Immutable Objects
- 43m 13s
—About Values
1m 43s
—Immutable Objects as Values
1m 32s
—Example of Immutable Objects in C#
3m 10s
—More Measurements on C# Performance
2m 12s
—Performance of Immutable Collections
2m 46s
—When to Be Careful With Immutable Collections
1m 44s
—One Common Mistake With Immutable Collections
1m 38s
—Different Ways to Validate Data
2m 40s
—Problems When Validating in More Than One Way
3m 8s
—Benefits From Validating Only in the Constructor
2m 6s
—Transactional Qualities of Operations on Immutable Objects
2m 29s
—Avoiding Processing Overhead in Immutable Operations
1m 27s
—Immutability and Equality
1m 5s
—Equality in Objects With Identity
2m 39s
—Example of Immutable Structure
1m 27s
—Immutable Structure Implementation
1m 58s
—Designing the Immutable Circle Interface
2m 36s
—Implementing the Immutable Circle Class
2m 44s
—Implementing the Immutable Frame Class
2m 28s
—Summary
1m 32s
Improving the Unit Tests
- 42m 43s
—About Different Kinds of Tests
1m 57s
—About Integration Tests
3m 38s
—Overview of Types That Will Be Tested
2m 38s
—Preparing the Immutable Structure Tests
1m 51s
—Designing the Immutable Structure Tests API
1m 53s
—Beginning the Library Implementation
1m 33s
—Implementing the Assert Method
1m 58s
—Completing the Library
1m 15s
—Testing the Rectangle
2m 7s
—Completing the Immutable Structures Tests
2m 4s
—Testing the Circle Constructor
2m 24s
—Testing the Geometry
2m 14s
—Testing the Immutable Methods
2m 5s
—Preparing the Equality Testing Library
1m 43s
—Design of Declarative Testing Methods
2m 11s
—Assert Method
1m 44s
—Test Cases for Testing the Equals Methods
1m 22s
—Test Cases for Operator Overloads
1m 55s
—Demonstrating the Equality Testing Library
1m 38s
—Discussion
2m 51s
—Summary
1m 29s
Crossing Responsibility Boundaries
- 41m 42s
—Defining Responsibilities of a Class
1m 49s
—Defining Responsibility Boundaries
2m 7s
—Different Kinds of Test Doubles
2m 24s
—Identifying Responsibilities of the Circle Class
1m 28s
—Moving Somebody Else's Responsibilities Out
2m 36s
—Identifying the Problems
2m 30s
—Motivation Behind the Visitor Pattern
1m 40s
—The Visitor Pattern
1m 39s
—Identifying Weaknesses in the Visitor Pattern
1m 31s
—Modified Visitor Pattern Implementation
1m 57s
—Applying the Visitor Pattern
2m 31s
—Testing the Interaction With Visitors
1m 53s
—Completing the Interaction Tests
1m 51s
—Identifying Responsibilities of the Frame Class
2m 7s
—Pros and Cons of Mocking in Unit Tests
2m 30s
—Integration Tests in Place of Unit Tests With Mocks
1m 33s
—Using Manually Coded Mocks
2m 11s
—Using Concrete Visitor as a Spy
1m 34s
—Using the Fluent Interface to Simplify Integration Tests
1m 15s
—Mocking Framework vs. Manual Mocks
1m 35s
—Running the Tests
1m 7s
—Summary
1m 43s
Managing Operations on Database and External Systems
- 45m 9s
—The Problem of Connecting to External Systems
4m 23s
—Designing the Actual User Interface
4m 41s
—Layering the Application
4m 17s
—Referencing Issues Between Layers
3m 15s
—Demonstrating the Data Mapping Layer
3m 25s
—Final Organization of Layers
1m 31s
—Adding a Data Access Layer to the Application
2m 48s
—Adding the Data Gateway to the Application
3m 3s
—About Testing the Layered Application
2m 18s
—Handling Database Errors - the Incorrect Way
2m 30s
—Handling Database Errors - the Correct Way
4m 2s
—Summary
4m 5s
—Course Summary
4m 44s