| name | s-test |
| description | Write and run unit tests for WoW addons using Busted and the Mechanic test framework. Covers test structure, mocking WoW APIs, and coverage analysis. Use when adding tests, fixing bugs with regression tests, or improving coverage. Triggers: test, unit test, coverage, Busted, mock, TDD, sandbox.
|
Testing WoW Addons
Expert guidance for testing WoW addons using Sandbox, Desktop, and In-Game methods.
Related Commands
- c-test - Run unit tests workflow
- c-review - Full code review (includes test step)
CLI Commands (Use These First)
MANDATORY: Always use CLI commands before manual exploration.
| Task |
Command |
| Generate Stubs |
mech call sandbox.generate |
| Run Sandbox Tests |
mech call sandbox.test -i '{"addon": "MyAddon"}' |
| Run Busted Tests |
mech call addon.test -i '{"addon": "MyAddon"}' |
| Test Coverage |
mech call addon.test -i '{"addon": "MyAddon", "coverage": true}' |
| Sandbox Status |
mech call sandbox.status |
Capabilities
- Sandbox Testing — Fast, offline tests using generated WoW API stubs
- Desktop Testing (Busted) — Integration tests with custom mocks
- In-Game Testing — Runtime verification via MechanicLib registration
- Coverage Analysis — Identify untested code paths
Routing Logic
Quick Reference
Recommended Workflow
- Sandbox (Core): Fast feedback for business logic.
- Desktop (Integration): Test interactions between modules.
- In-Game (Verification): Final check against live APIs.
Example Sandbox Test
describe("MyAddon Core", function()
it("calculates values correctly", function()
local result = Core.Calculate(10, 20)
assert.equals(30, result)
end)
end)
Running Tests
# Generate stubs once
mech call sandbox.generate
# Run tests frequently
mech call sandbox.test -i '{"addon": "MyAddon"}'