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 this version of the course. It is not video runtime, which is lower.
Canadian dollars. One learner, lifetime access to this course version. Tax extra.
1 lesson free to preview
This course does not issue a certificate on its own. It counts toward the paths listed below, and those do.
01What 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. A SCORM lesson looks like any other lesson, which is the point of ingesting packages rather than linking out to them.
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
03Before 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.
- This course is required by the AI-Assisted Development path, because verification is its whole subject.
Courses that come first
- 2.2 · Triggers, handlers and bulk safety6 hr · Intermediate
Part of these paths
- Salesforce DeveloperShareCo Certified Developer
- AI-Assisted DevelopmentShareCo Certified AI Developer
- The Full StackShareCo Certified Platform Engineer
04Who teaches it
Elliot Saha
Co-founder, Chief Technology Officer
Platform architecture, custom Apex and Lightning Web Components, AI systems, and the Academy platform itself.
05Reviews
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. The certificate is issued by the path assessment, not by this course.
- 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 daysFull refund within 14 days if you have completed under a quarter of the required lessons. Stated here rather than in a footer.
Start 2.7
Enrol as an individual, or buy seats and assign this course to your team. Progress is reported per lesson, per module and per path.
- 5 hr estimated effort, labs included
- Lifetime access to the version you enrol in
- A ShareCo certificate is not a Salesforce certification