Skip to content
Back to skills

Test Generation

ASecurity

Generate comprehensive test suites for existing code. Use when asked to write tests, add test coverage, create unit tests, or build integration tests.

  • 498 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added June 5, 2026
testingjavascripttypescriptpythongojavanoderefactoring

Security analysis

A100/100

Scanned June 5, 2026

npx -y skills add agulli/atlas-agents --skill test-generation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Test Generation?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Test Generation
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/agulli-test-generation/badge)](https://www.skillsdirectory.com/skills/agulli-test-generation)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: test-generation
description: Generate comprehensive test suites for existing code. Use when asked to write tests, add test coverage, create unit tests, or build integration tests.
license: MIT
compatibility: Requires pytest (Python) or vitest/jest (Node.js)
---

## Process

1. **Read the source code.** Load every function and class under test. Do not write tests from a summary or description — you must see the implementation.

2. **Identify the test framework.** Check for:
   - `conftest.py` or `pytest.ini` → pytest
   - `vitest.config.*` → Vitest
   - `jest.config.*` → Jest
   If none are found, default to pytest for Python, Vitest for TypeScript/JavaScript.

3. **Categorize test types needed:**
   - **Happy path:** Normal inputs, expected outputs
   - **Edge cases:** Empty inputs, None/null, boundary values, maximum lengths
   - **Error cases:** Invalid inputs that should raise exceptions or return errors
   - **Integration:** Tests that verify multiple components work together

4. **Write tests following the AAA pattern:**
   ```python
   def test_descriptive_name():
       # Arrange — set up inputs and expected state
       user = create_test_user(name="Alice")
       
       # Act — call the function under test
       result = get_user_greeting(user)
       
       # Assert — verify the output
       assert result == "Hello, Alice!"
   ```

5. **Name tests descriptively.** The test name should describe the scenario and expected outcome:
   - ✅ `test_login_rejects_empty_password`
   - ❌ `test_login_2`

6. **Run the tests.** Execute the full test suite and confirm all tests pass. If any fail, fix the test (not the source code) unless you discover an actual bug.

## Rationalizations

| Excuse | Rebuttal |
|--------|----------|
| "I'll just write happy path tests" | Edge cases are where bugs live. Write at least one edge case per function. |
| "The function is too simple to test" | Simple functions get refactored. Tests protect against regressions during refactoring. |
| "I'll add tests later" | You won't. Write them now. |
| "Mocking everything is fine" | Over-mocking hides integration bugs. Mock external services, not your own code. |

## Verification

- [ ] Tests were executed (not just written)
- [ ] All tests pass
- [ ] At least one edge case test exists per function
- [ ] Test names describe the scenario, not just "test_1", "test_2"

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…