Agent skill
testing-basics
Essential testing patterns for any project. Use when: writing tests, setting up testing, or fixing test issues. Triggers: "test", "testing", "unit test", "write tests".
Install this agent skill to your Project
npx add-skill https://github.com/timequity/vibe-coder/tree/main/skills/testing-basics
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:
test_login_valid_credentials_returns_tokentest_checkout_empty_cart_raises_errortest_search_no_results_returns_empty_list
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
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
mvp-help
Help and documentation for Idea to MVP plugin. Use when: user asks about building MVPs, vibe coding, or available commands. Triggers: "help", "what can you do", "mvp help", "how to build".
verification-gate
Hidden quality gate that runs before showing "Done!" to user - ensures all tests pass, build succeeds, and requirements met before claiming completion
brainstorming
Refine ideas into detailed designs through Socratic dialogue. Use when: user has rough idea, needs to clarify requirements, explore approaches. Triggers: "brainstorm", "discuss idea", "I'm thinking about", "what if", "help me think through", "explore options", "/brainstorm".
subagent-creator
Guide for creating effective subagents (custom agents). Use when users want to create a new subagent that can be dispatched via Task tool for autonomous work. Covers frontmatter fields (name, description, tools, model, permissionMode, skills), prompt design, and when to use subagents vs skills.
backend-rust
Modern Rust backend with Axum, SQLx, tokio + CI/CD automation. Use when: building Rust APIs, high-performance services, or needing build/test/lint/audit automation. Triggers: "axum", "rust backend", "rust api", "sqlx", "tokio", "cargo build", "cargo test", "clippy", "rustfmt", "cargo-audit", "cross-compile", "rust ci", "release build", "rust security", "shuttle", "actix".
test-driven-development
Write failing test first, then minimal code to pass. Red-Green-Refactor cycle. Use when: implementing features, fixing bugs, refactoring code. Triggers: "implement", "add feature", "fix bug", "tdd", "test first", "write tests", "test-driven".
Didn't find tool you were looking for?