Test-Driven Laravel

21h 48m 56s
English
Paid

Course description

The biggest objective of this course is to teach you how to TDD something real; not just another cookie-cutter to-do app.

Read more about the course

We cover fundamentals like:

  • What test should you write first
  • Organizing your test suite
  • Feature tests vs. unit tests
  • Testing validation rules
  • Testing events and background jobs
  • Working with test databases
  • Speeding up your tests with test doubles

...as well as hard topics, like:

  • Testing code that interacts with third-party services
  • Writing your own test doubles from scratch
  • Testing automated payouts with Stripe Connect
  • Testing the sending of mass emails
  • How to test race conditions
  • Testing file uploads and server side image processing

Test-Driven Laravel teaches you how to design a solid test suite for a real-world, marketable product that you could actually charge money for.

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 166 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online Test-Driven Laravel

0:00
/
#1: What Do We Build First?

All Course Lessons (166)

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

Unlock unlimited learning

Get instant access to all 165 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

React Js A-Z With Laravel - For Beginner to Advanced Level

React Js A-Z With Laravel - For Beginner to Advanced Level

Sources: udemy
This React Js A-Z With Laravel Course will help you to become a Full Stack Web Developer. React has rapidly become one of the most powerful tools for building W
68 hours 1 minute 33 seconds
Scaling Laravel

Scaling Laravel

Sources: serversforhackers.com
The first time I put code into a load balanced environment, I accidentally gave away thousands of dollars in prizes within a few minutes. After pulling an all-nighter to get the...
9 hours 29 minutes 45 seconds
Laravel From Scratch Course | Build A Job Listing Application

Laravel From Scratch Course | Build A Job Listing Application

Sources: Brad Traversy
Learn Laravel from scratch by creating and deploying a full-fledged job site, including authentication, authorization, and saving job listings to bookmarks...
13 hours 20 minutes 36 seconds
Paginated Vue Components with Laravel

Paginated Vue Components with Laravel

Sources: Codecourse
Want flexible paginated Vue components that work with any data? Let's make this easy.
52 minutes 56 seconds
Laravel 8 advanced tips and tricks beginner and intermediate

Laravel 8 advanced tips and tricks beginner and intermediate

Sources: udemy
The latest version of laravel is 8 so during this course you will learn the newest and the short ways to write a Laravel project or app . Laravel until now have
1 hour 56 minutes 50 seconds