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

Join premium to watch
Go to premium
# Title Duration
1 What Do We Build First? 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

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Ultimate PHP, Laravel, CSS & Sass! Learn PHP, Laravel & Sass

Ultimate PHP, Laravel, CSS & Sass! Learn PHP, Laravel & Sass

Sources: udemy
Have you have been taking courses that are not up to date or courses that after finishing them you will immediately know that is not what they promised to be in
95 hours 30 minutes
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
React and Laravel: Breaking a Monolith to Microservices

React and Laravel: Breaking a Monolith to Microservices

Sources: udemy
Microservices Architecture, React, Next.js, Laravel, Docker, RabbitMQ, Event Driven Microservices, Internal APIs, Redis. Learn how to create a Monolith using React and Laravel t...
15 hours 7 minutes 45 seconds
Master Laravel, Vue 3 & Inertia Full Stack 2023

Master Laravel, Vue 3 & Inertia Full Stack 2023

Sources: udemy
Learn Laravel together with Vue.js in this brand new, full-stack, project based course! Learn how to create a robust API in Laravel and a Single Page Application frontend in Vue...
35 hours 53 minutes 40 seconds
Master Laravel with GraphQL, Vue.js and Tailwind

Master Laravel with GraphQL, Vue.js and Tailwind

Sources: udemy
Learn modern and most up to date development tools in your web developer toolchain. I'll let you see how modern PHP is these days. First off, the power of the L
17 hours 48 minutes 5 seconds