test-generator

Activates when generating unit tests, integration tests, or test cases for code

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "test-generator" with this command: npx skills add fusionet24/aiskills/fusionet24-aiskills-test-generator

Test Generator

Overview

This skill helps generate comprehensive test cases for various types of code. It creates unit tests, integration tests, and edge case tests that follow best practices and testing frameworks.

Instructions

When generating tests, follow these steps:

  1. Analyze the Code: Understand what the code does, its inputs, outputs, and dependencies
  2. Identify Test Cases: Determine happy path, edge cases, and error scenarios
  3. Choose Framework: Use the appropriate testing framework for the language
  4. Write Tests: Create clear, maintainable test cases with descriptive names
  5. Add Assertions: Include proper assertions and expected outcomes
  6. Document: Add comments for complex test scenarios

Examples

Example 1: Python Function Test

Input:

def calculate_discount(price, discount_percent):
    if discount_percent < 0 or discount_percent > 100:
        raise ValueError("Discount must be between 0 and 100")
    return price * (1 - discount_percent / 100)

Output:

import pytest

def test_calculate_discount_valid():
    """Test discount calculation with valid inputs."""
    assert calculate_discount(100, 20) == 80.0
    assert calculate_discount(50, 10) == 45.0

def test_calculate_discount_zero():
    """Test with zero discount."""
    assert calculate_discount(100, 0) == 100.0

def test_calculate_discount_full():
    """Test with 100% discount."""
    assert calculate_discount(100, 100) == 0.0

def test_calculate_discount_negative():
    """Test that negative discount raises ValueError."""
    with pytest.raises(ValueError, match="Discount must be between 0 and 100"):
        calculate_discount(100, -10)

def test_calculate_discount_over_hundred():
    """Test that discount over 100 raises ValueError."""
    with pytest.raises(ValueError, match="Discount must be between 0 and 100"):
        calculate_discount(100, 150)

Example 2: JavaScript API Test

Input:

async function fetchUserData(userId) {
    const response = await fetch(`/api/users/${userId}`);
    if (!response.ok) throw new Error('Failed to fetch user');
    return response.json();
}

Output:

import { describe, it, expect, vi } from 'vitest';

describe('fetchUserData', () => {
    it('should fetch user data successfully', async () => {
        global.fetch = vi.fn(() =>
            Promise.resolve({
                ok: true,
                json: () => Promise.resolve({ id: 1, name: 'John' })
            })
        );

        const data = await fetchUserData(1);
        expect(data).toEqual({ id: 1, name: 'John' });
        expect(fetch).toHaveBeenCalledWith('/api/users/1');
    });

    it('should throw error when fetch fails', async () => {
        global.fetch = vi.fn(() =>
            Promise.resolve({ ok: false })
        );

        await expect(fetchUserData(1)).rejects.toThrow('Failed to fetch user');
    });
});

Notes

  • Cover edge cases and error scenarios
  • Use descriptive test names that explain what is being tested
  • Keep tests isolated and independent
  • Mock external dependencies
  • Test both success and failure paths
  • Follow the AAA pattern: Arrange, Act, Assert
  • Consider performance and testing pyramid principles

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

pyspark-test-generator

No summary provided by upstream source.

Repository SourceNeeds Review
General

data-profiler

No summary provided by upstream source.

Repository SourceNeeds Review
General

documentation-writer

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

test-generator

No summary provided by upstream source.

Repository SourceNeeds Review