Course 2.7 · Curriculum 2026.1
Testing that proves something
Write tests that catch defects rather than tests that reach 75%. Coverage is a floor, not a goal, and this course treats it that way.
- Estimated effort
- 5 hr
- Lessons
- 39
- Modules
- 7
- Material
- 5 hr
Estimated effort is the sum of the lesson and lab times in the course outline, for this version of the course.
This course is planned and not on sale. The curriculum below is the plan, and it may change before the course opens.
See the courses on sale01What you will learn
8 capabilities, stated as things you can do
Each one is what you should be able to do at the end, not what the course covers. If an outcome is not testable, it is not an outcome.
- Write a test that fails for the right reason before it passes.
- Build test data with a factory rather than by copying setup blocks between classes.
- Assert on behaviour and on messages, not only on record counts.
- Test under a real user with runAs, because an administrator can do things a user cannot.
- Test bulk paths with 200 records as the default case.
- Mock a callout, a platform event and the passage of time.
- Explain why 75% coverage on untested logic is worse than no coverage claim at all.
- Read a failing deployment test and fix the code rather than the assertion.
02Curriculum
7 modules, 39 lessons
Every lesson shows its length and its type, from the course outline.
7 modules · 39 lessons · 5 hr of material
A coverage number is a deployment gate, not a quality measure. The distinction is the entire course in one sentence.
- VideoCoverage is a floor, not a goalA test with no assertions covers lines and proves nothing. Orgs deploy on that every day, which is why regressions ship.Preview8 min
- VideoRed first: writing the failing test7 min
- VideoAssertions that describe behaviour, not just record counts7 min
- VideoWhy 46% of a real Apex codebase is test classes6 min
- ReadingReading: a test with no assertions, read as a defect5 min
A copied setup block is a maintenance liability from the day it is pasted. A factory is the alternative.
- VideoTest setup, test data, and the factory pattern8 min
- VideoBuilding 200 records without copying a setup block between classes7 min
- VideoBuilder-style factories versus fixed test records6 min
- VideoTest.isRunningTest, and using it sparingly6 min
- LabLab: build a factory for a three-object test scenario13 min
An administrator can see and do things a normal user cannot. A test that only runs as an admin proves the feature works for admins.
- VideorunAs, and testing as the real userAn administrator can see and do things a normal user cannot. A test that only runs as an admin proves the feature works for admins.8 min
- VideoMatching a permission set instead of logging in as someone7 min
- VideoField-level security and sharing inside a runAs block6 min
- ReadingReading: the permission gap that only runAs finds5 min
- LabLab: write a runAs test that fails until permissions are right13 min
Each has a specific mechanism to test correctly, and skipping any one of them is how a passing suite ships a broken feature.
- VideoBulk tests with 200 records as the default8 min
- VideoMocking callouts with HttpCalloutMock and a stub provider7 min
- VideoMocking a platform event publish inside a test6 min
- VideoTesting asynchronous Apex: Test.startTest and the queue7 min
- ReadingTesting time: scheduled jobs and date-sensitive logic6 min
- LabLab: bring an untested handler to real coverage14 min
Proof, not coverage. The write must not execute before confirmation, approving must execute it, declining must suppress it, and the record has to leave clean.
- VideoProving an approve button actually works, end to end8 min
- VideoProving the write does not execute before confirmation7 min
- VideoProving approving executes it and declining suppresses it7 min
- VideoProving a declined change genuinely did not land6 min
- VideoDeleting the test record and asserting zero remaining6 min
- LabLab: write the full approve-decline test from scratch14 min
Running tests from the terminal, in a pipeline, and reading the failure that only happens in production.
- VideoRunning tests from the CLI and reading the output7 min
- VideoTests in a deployment, and the validation-only run6 min
- VideoThe test that passes in a sandbox and fails in production7 min
- VideoFlaky tests, and why they are worse than failing ones5 min
- ReadingReading: a checklist before you mark a class done5 min
- LabLab: run a targeted test class from the terminal12 min
The capstone: taking a class from a passing, empty test suite to one that would actually catch a regression.
- VideoWhy 75% coverage on untested logic is worse than no coverage claim at all7 min
- VideoReading a failing deployment test and fixing the code, not the assertion6 min
- VideoCommon test anti-patterns, named5 min
- ReadingReading: a pre-merge test checklist5 min
- LabLab: bring a class from passing-but-empty tests to real ones13 min
- QuizCheck: testing14 min
04Before you start
What you need first
Assumed knowledge and setup
- Course 2.2. You need something worth testing.
- A Developer Edition org and the CLI for running tests from the terminal.
Before this course
Courses often taken next
Each is a separate course, bought on its own.
05Who teaches it
Elliot Saha
Co-founder, Chief Technology Officer
Platform architecture, custom Apex and Lightning Web Components, AI systems, and the Academy platform itself.
06Reviews
No learner reviews yet
This course has not been taken by enough people to publish an honest rating, and we will not print invented quotes on a page that sells verification discipline. Here is what we can evidence instead.
- Assessment
- Lesson checks onlyThis course carries lesson checks and issues no certificate.
- Curriculum version
- 2026.1You enrol into a version. Content changes do not move you mid-course, and your required-lesson count is snapshotted at enrollment.
- Refunds
- 14 daysAn individual purchase can be refunded within 14 days if you have completed less than 20% of the lessons. Team seats are refundable before they are assigned. From the Academy terms.
Start 2.7
This course is in development and not yet open for enrolment. The courses open now are listed in the catalogue.
- 5 hr estimated effort, labs included
- A ShareCo certificate is not a Salesforce certification