smithery/timequity

testing-basics

Essential testing patterns for any project. Use when: writing tests, setting up testing, or fixing test issues.

Installation

$ npx skills add smithery/timequity --skill testing-basics

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/timequity · top by installs.

npx skills add smithery/timequity

Browse all from smithery/timequity

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 1,886 B
  • docs SUMMARY.md 192 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Testing Basics

Core testing patterns that apply to any language or framework.

Test Structure

AAA Pattern

Arrange → Act → Assert
# Arrange
user = User(name="Alice")

# Act
result = user.greet()

# Assert
assert result == "Hello, Alice!"

Test Types

Type Scope Speed When to use
Unit Single function/class Fast Core logic
Integration Multiple components Medium APIs, DB
E2E Full system Slow Critical paths

Naming Tests

test_[what]_[condition]_[expected]

Examples:

  • testloginvalidcredentialsreturns_token
  • testcheckoutemptycartraises_error
  • testsearchnoresultsreturnsemptylist

What to Test

Do Test

  • Business logic
  • Edge cases
  • Error handling
  • Public interfaces

Don't Test

  • Framework code
  • Simple getters/setters
  • Implementation details
  • External services directly

Test Isolation

Each test should:

  • Run independently
  • Not depend on order
  • Clean up after itself
  • Not share state

Mocking

Mock external dependencies, not internal logic:

# Good: mock external service
@patch('app.services.email.send')
def test_signup_sends_welcome_email(mock_send):
    signup(user)
    mock_send.assert_called_once()

# Bad: mock internal implementation
@patch('app.models.user.User._validate')  # Don't do this

Coverage

  • Aim for meaningful coverage, not 100%
  • Cover happy paths first
  • Then error cases
  • Then edge cases

Quick Checklist

Before committing:

  • Tests pass locally
  • New code has tests
  • No flaky tests added
  • Test names are descriptive