s-test

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.

$ 安裝

git clone https://github.com/Falkicon/Mechanic /tmp/Mechanic && cp -r /tmp/Mechanic/.claude/skills/s-test ~/.claude/skills/Mechanic

// tip: Run this command in your terminal to install the skill


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.

TaskCommand
Generate Stubsmech call sandbox.generate
Run Sandbox Testsmech call sandbox.test -i '{"addon": "MyAddon"}'
Run Busted Testsmech call addon.test -i '{"addon": "MyAddon"}'
Test Coveragemech call addon.test -i '{"addon": "MyAddon", "coverage": true}'
Sandbox Statusmech call sandbox.status

Capabilities

  1. Sandbox Testing — Fast, offline tests using generated WoW API stubs
  2. Desktop Testing (Busted) — Integration tests with custom mocks
  3. In-Game Testing — Runtime verification via MechanicLib registration
  4. Coverage Analysis — Identify untested code paths

Routing Logic

Request typeLoad reference
Sandbox, Busted, In-Game guides../../docs/integration/testing.md
Busted spec patternsreferences/busted-patterns.md
Mocking WoW APIsreferences/wow-mocking.md
MechanicLib test registration../../docs/integration/mechaniclib.md

Quick Reference

Recommended Workflow

  1. Sandbox (Core): Fast feedback for business logic.
  2. Desktop (Integration): Test interactions between modules.
  3. 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"}'