smithery/moogah

software-testing

Software testing guidance with decision tree. Use when: (1) Writing or improving tests, (2) User asks about testing approaches, (3) Need guidance on test scope or assertions, (4) Working with specific test frameworks. Routes to specialized testing strategies via reference files.

Installation

$ npx skills add smithery/moogah --skill software-testing

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/moogah.

npx skills add smithery/moogah

Browse all from smithery/moogah

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,541 B
  • docs SUMMARY.md 303 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Software Testing

Testing Decision Tree

Need to write tests?
    ↓
    Legacy/undocumented code needing refactoring?
    ├─ YES → Use characterization-testing skill
    └─ NO  → Continue
              ↓
              What type of testing guidance needed?
              │
              ├─ Unit testing principles?
              │  └─→ See references/unit-testing.md
              │
              ├─ Using Jest?
              │  └─→ See references/jest-testing.md
              │
              ├─ Using Vitest?
              │  └─→ See references/vitest-testing.md
              │
              ├─ Testing React components?
              │  └─→ See references/react-testing.md
              │
              └─ Testing Node.js code?
                 └─→ See references/node-testing.md

Core Testing Principles

Apply these principles across all testing approaches:

Keep Test Scope Small

Run only the tests you need. Prefer narrow scope over full test suites.

Good:

npm test src/auth/login.test.js
npm test -- --testNamePattern="login validation"

Avoid:

npm test  # Running entire suite unnecessarily

Use Specific Assertion Values

Write assertions with actual expected values, not generic placeholders.

Good:

expect(user.name).toBe('Alice')
expect(getUserById).toHaveBeenCalledWith('user-123')

Avoid:

expect(users.length).toBe(2)
expect(getUserById).toHaveBeenCalledWith(expect.any(String))

Check Repo-Specific Skills First

Before running tests:

  1. Check what Project skills are available for testing guidance
  2. Check test configuration files
  3. Ask user if uncertain

Reference Guide

  • references/unit-testing.md - Unit testing principles (SRP, isolation, mocking, what to test)
  • references/jest-testing.md - Jest commands, matchers, and patterns
  • references/vitest-testing.md - Vitest commands and differences from Jest
  • references/react-testing.md - React Testing Library query priorities and patterns
  • references/node-testing.md - Node.js-specific testing (async, streams, file system)