-
Урок 1.
00:11:30
What Do We Build First?
-
Урок 2.
00:09:06
Sketching out Our First Test
-
Урок 3.
00:16:42
Getting to Green
-
Урок 4.
00:11:03
Unit Testing Presentation Logic
-
Урок 5.
00:07:16
Refactoring for Speed
-
Урок 6.
00:06:56
Hiding Unpublished Concerts
-
Урок 7.
00:05:50
Testing Query Scopes
-
Урок 8.
00:04:10
Factory States
-
Урок 9.
00:01:02
Introducing the Next Feature
-
Урок 10.
00:09:47
Browser Testing vs Endpoint Testing
-
Урок 11.
00:06:23
Outlining the First Purchasing Test
-
Урок 12.
00:12:23
Faking the Payment Gateway
-
Урок 13.
00:05:32
Adding Tickets to Orders
-
Урок 14.
00:05:16
Encapsulating Relationship Logic in the Model
-
Урок 15.
00:06:56
Getting Started with Validation Testing
-
Урок 16.
00:05:30
Reducing Duplication with Custom Assertions
-
Урок 17.
00:07:00
Handling Failed Charges
-
Урок 18.
00:06:40
Preventing Ticket Sales to Unpublished Concerts
-
Урок 19.
00:03:46
Outlining the First Test Case
-
Урок 20.
00:08:20
Adding Tickets to Concerts
-
Урок 21.
00:09:29
Refusing Orders When There Are No More Tickets
-
Урок 22.
00:04:25
Finishing the Feature Test
-
Урок 23.
00:05:59
Cancelling Failed Orders
-
Урок 24.
00:07:49
Refactoring and Redundant Test Coverage
-
Урок 25.
00:11:57
Cleaning Up Our Tests
-
Урок 26.
00:07:32
Asserting Against JSON Responses
-
Урок 27.
00:06:22
Returning Order Details
-
Урок 28.
00:04:39
This Design Sucks
-
Урок 29.
00:05:05
Persisting the Order Amount
-
Урок 30.
00:06:01
Removing the Need to Cancel Orders
-
Урок 31.
00:07:06
Preparing for Extraction
-
Урок 32.
00:04:46
Extracting a Named Constructor
-
Урок 33.
00:05:23
Precomputing the Order Amount
-
Урок 34.
00:05:11
Uncovering a New Domain Object
-
Урок 35.
00:03:48
You Might Not Need a Mocking Framework
-
Урок 36.
00:01:43
Uh Oh, a Race Condition!
-
Урок 37.
00:04:17
Requestception
-
Урок 38.
00:05:38
Hooking into Charges
-
Урок 39.
00:03:01
Uh Oh, a Segfault!
-
Урок 40.
00:05:04
Replicating the Failure at the Unit Level
-
Урок 41.
00:07:00
Reserving Individual Tickets
-
Урок 42.
00:03:58
Reserved Means Reserved!
-
Урок 43.
00:05:59
That Guy Stole My Tickets!
-
Урок 44.
00:05:46
Cancelling Reservations
-
Урок 45.
00:06:47
Refactoring Mocks to Spies
-
Урок 46.
00:05:53
A Change in Behavior
-
Урок 47.
00:05:38
Deleting Stale Tests
-
Урок 48.
00:06:48
Cleaning up a Loose Variable
-
Урок 49.
00:07:28
Moving the Email to the Reservation
-
Урок 50.
00:09:50
Refactoring "Long Parameter List" Using "Preserve Whole Object"
-
Урок 51.
00:06:12
Green with Feature Envy
-
Урок 52.
00:09:04
Avoiding Service Classes with Method Injection
-
Урок 53.
00:10:01
Generating a Valid Payment Token
-
Урок 54.
00:04:05
Retrieving the Last Charge
-
Урок 55.
00:04:37
Making a Successful Charge
-
Урок 56.
00:12:18
Dealing with Lingering State
-
Урок 57.
00:09:41
Don't Mock What You Don't Own
-
Урок 58.
00:02:19
Using Groups to Skip Integration Tests
-
Урок 59.
00:03:59
Handling Invalid Payment Tokens
-
Урок 60.
00:04:28
The Moment of Truth
-
Урок 61.
00:04:29
When Interfaces Aren't Enough
-
Урок 62.
00:12:38
Refactoring Towards Duplication
-
Урок 63.
00:08:10
Capturing Charges with Callbacks
-
Урок 64.
00:07:42
Making the Tests Identical
-
Урок 65.
00:07:42
Extracting a Contract Test
-
Урок 66.
00:08:24
Extracting the Failure Case
-
Урок 67.
00:04:49
Upgrading to Laravel 5.4
-
Урок 68.
00:10:26
Removing the BrowserKit Dependency
-
Урок 69.
00:07:52
Sketching Out Order Confirmations
-
Урок 70.
00:05:21
Driving out the Endpoint
-
Урок 71.
00:05:46
Asserting Against View Data
-
Урок 72.
00:06:51
Extracting a Finder Method
-
Урок 73.
00:08:49
Making Static Data Real
-
Урок 74.
00:08:24
Deciding What to Test in a View
-
Урок 75.
00:05:11
Decoupling Data from Presentation
-
Урок 76.
00:06:28
Fixing the Test Suite
-
Урок 77.
00:06:28
Stubbing the Interface
-
Урок 78.
00:05:16
Updating Our Unit Tests
-
Урок 79.
00:04:48
Confirmation Number Characteristics
-
Урок 80.
00:07:29
Testing the Confirmation Number Format
-
Урок 81.
00:08:44
Ensuring Uniqueness
-
Урок 82.
00:05:59
Refactoring to a Facade
-
Урок 83.
00:17:49
Promoting Charges to Objects
-
Урок 84.
00:11:02
Leveraging Our Contract Tests
-
Урок 85.
00:08:01
Storing Charge Details with Orders
-
Урок 86.
00:10:27
Deleting More Stale Code
-
Урок 87.
00:08:27
Feature Test and JSON Updates
-
Урок 88.
00:09:12
Claiming Tickets When Creating Orders
-
Урок 89.
00:10:54
Assigning Codes When Claiming Tickets
-
Урок 90.
00:11:55
The Birthday Problem
-
Урок 91.
00:11:44
Integrating Hashids
-
Урок 92.
00:04:21
Dealing with Out of Sync Mocks
-
Урок 93.
00:05:19
Wiring It All Together
-
Урок 94.
00:02:52
Ready to Demo
-
Урок 95.
00:10:35
Using a Fake to Intercept Email
-
Урок 96.
00:10:39
Testing Mailable Contents
-
Урок 97.
00:02:40
Cleanup and Demo
-
Урок 98.
00:11:26
Testing the Login Endpoint
-
Урок 99.
00:04:42
Should You TDD Simple Templates?
-
Урок 100.
00:06:31
Namespacing Our Test Suite
-
Урок 101.
00:05:22
Getting Started with Laravel Dusk
-
Урок 102.
00:06:26
QA Testing the Login Flow
-
Урок 103.
00:06:24
Preventing Guests from Adding Concerts
-
Урок 104.
00:14:20
Adding a Valid Concert
-
Урок 105.
00:09:49
Validation and Redirects
-
Урок 106.
00:04:21
Converting Empty Strings to Null
-
Урок 107.
00:09:13
Reducing Noise with Form Factories
-
Урок 108.
00:06:49
Connecting Promoters and Concerts
-
Урок 109.
00:05:46
Autopublishing New Concerts
-
Урок 110.
00:12:09
Asserting Against View Objects
-
Урок 111.
00:05:47
Avoiding Sort-Sensitive Tests
-
Урок 112.
00:11:39
Refactoring Assertions with Macros
-
Урок 113.
00:05:29
Viewing the Update Form
-
Урок 114.
00:09:27
The First Update Test
-
Урок 115.
00:09:14
Driving Out Basic Concert Updates
-
Урок 116.
00:11:31
Restricting Updates to Unpublished Concerts
-
Урок 117.
00:06:26
Storing the Intended Ticket Quantity
-
Урок 118.
00:05:25
Updating the Other Tests
-
Урок 119.
00:07:52
Refactoring Away Some Test Duplication
-
Урок 120.
00:08:28
Creating Tickets at Time of Publish
-
Урок 121.
00:07:44
Custom Factory Classes
-
Урок 122.
00:07:35
Discovering a New Resource
-
Урок 123.
00:11:12
Creating Published Concerts
-
Урок 124.
00:04:03
Adding Concerts without Publishing
-
Урок 125.
00:08:47
Pushing Logic Out of the View
-
Урок 126.
00:06:20
More Custom Assertion Fun
-
Урок 127.
00:08:22
Calculating Tickets Sold
-
Урок 128.
00:08:58
Making the Progress Bar Work
-
Урок 129.
00:08:40
Total Revenue and a Relationship Bug
-
Урок 130.
00:11:28
Creating a Custom OrderFactory
-
Урок 131.
00:12:15
Asserting Against Sort Order
-
Урок 132.
00:03:41
Splitting Large Tests
-
Урок 133.
00:12:31
Storing Messages for Attendees
-
Урок 134.
00:09:27
Confirming That a Job Was Dispatched
-
Урок 135.
00:18:29
Unit Testing the Job
-
Урок 136.
00:11:16
Refactoring for Robustness
-
Урок 137.
00:04:11
Mailable Testing Refresher and Demo
-
Урок 138.
00:07:41
Upgrading to Laravel 5.5
-
Урок 139.
00:10:43
Faking Uploads and File Systems
-
Урок 140.
00:09:16
Storing Files and Comparing Content
-
Урок 141.
00:07:45
Validating Poster Images
-
Урок 142.
00:05:39
Optional Files and the Null Object Pattern
-
Урок 143.
00:10:41
Testing Events
-
Урок 144.
00:11:42
Testing the Event Listener
-
Урок 145.
00:12:26
Resizing the Posted Image
-
Урок 146.
00:10:51
Optimizing the Image Size
-
Урок 147.
00:03:40
Upgrading Laravel and Deleting Some Code
-
Урок 148.
00:10:25
Viewing an Unused Invitation
-
Урок 149.
00:07:29
Viewing Used or Invalid Invitations
-
Урок 150.
00:12:46
Registering with a Valid Invitation
-
Урок 151.
00:05:20
Registering with an Invalid Invitation
-
Урок 152.
00:05:54
Validating Promoter Registration
-
Урок 153.
00:17:40
Testing a Console Command
-
Урок 154.
00:05:52
Sending Promoters an Invitation Email
-
Урок 155.
00:07:53
Test-Driving the Email Contents
-
Урок 156.
00:10:55
Getting Cozy with Stripe Connect
-
Урок 157.
00:10:05
Authorizing with Stripe
-
Урок 158.
00:17:44
Exchanging Tokens
-
Урок 159.
00:13:29
Unit Testing Middleware
-
Урок 160.
00:09:43
Testing Callbacks with Invokables
-
Урок 161.
00:08:16
Testing That Middleware Is Applied
-
Урок 162.
00:03:30
Updating Factories and a Speed Trick
-
Урок 163.
00:10:43
Total Charges for a Specific Account
-
Урок 164.
00:07:47
Paying Promoters Directly
-
Урок 165.
00:16:53
Splitting Payments with Stripe
-
Урок 166.
00:04:36
It's Alive