Unit Testing Framework

by aj-geddes3f5182cfd739No license355 starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 7 months ago

Write comprehensive unit tests with high coverage using testing frameworks like Jest, pytest, JUnit, or RSpec. Use when writing tests for functions, classes, components, or establishing testing standards.

Includes scriptsSoftware Development
AI-generated overview

Guides writing comprehensive unit tests with Jest, pytest, JUnit or RSpec, including AAA structure, mocks and edge cases.

What it does
Provides guidance and reference material for writing unit tests across languages and frameworks such as Jest, pytest, JUnit and RSpec. It covers the Arrange-Act-Assert pattern, test cases by language, mocking and test doubles, async testing, coverage and edge cases, and includes a complete example test suite. It also ships a shell script to scaffold tests and a JavaScript test template.
When to use it
Use it when writing tests for new functions, classes or components, when raising test coverage, or when establishing team testing standards. It also fits refactoring with test safety and test-driven development.
Requirements
An agent that can read markdown references and run shell scripts. It ships an executable scaffold script (scripts/scaffold-tests.sh) and a JavaScript test template; a target testing framework such as Jest, pytest, JUnit or RSpec is expected in the project being tested.

Unit Testing Framework

Table of Contents

Overview

Write effective unit tests that are fast, isolated, readable, and maintainable following industry best practices and AAA (Arrange-Act-Assert) pattern.

When to Use

  • Writing tests for new code
  • Improving test coverage
  • Establishing testing standards
  • Refactoring with test safety
  • Implementing TDD (Test-Driven Development)
  • Creating test utilities and mocks

Quick Start

Minimal working example:

javascript
// Jest/JavaScript exampledescribe("UserService", () => {  describe("createUser", () => {    it("should create user with valid data", async () => {      // Arrange - Set up test data and dependencies      const userData = {        email: "[email protected]",        firstName: "John",        lastName: "Doe",      };      const mockDatabase = createMockDatabase();      const service = new UserService(mockDatabase);
      // Act - Execute the function being tested      const result = await service.createUser(userData);
      // Assert - Verify the outcome      expect(result.id).toBeDefined();      expect(result.email).toBe("[email protected]");      expect(mockDatabase.save).toHaveBeenCalledWith(        expect.objectContaining(userData),      );    });  });});

Reference Guides

Detailed implementations in the references/ directory:

GuideContents
Test Structure (AAA Pattern) [blocked]Test Structure (AAA Pattern)
Test Cases by Language [blocked]Test Cases by Language
Mocking & Test Doubles [blocked]Mocking & Test Doubles
Testing Async Code [blocked]Testing Async Code, Test Coverage
Testing Edge Cases [blocked]Testing Edge Cases
Example: Complete Test Suite [blocked]import { UserService } from "./user-service";

Best Practices

✅ DO

  • Write tests before or alongside code (TDD)
  • Test one thing per test
  • Use descriptive test names
  • Follow AAA pattern
  • Test edge cases and error conditions
  • Keep tests isolated and independent
  • Use setup/teardown appropriately
  • Mock external dependencies
  • Aim for high coverage on critical paths
  • Make tests fast (< 10ms each)
  • Use parameterized tests for similar cases
  • Test public interfaces, not implementation

❌ DON'T

  • Test implementation details
  • Write tests that depend on each other
  • Ignore failing tests
  • Test third-party library code
  • Use real databases/APIs in unit tests
  • Make tests too complex
  • Skip edge cases
  • Forget to clean up resources
  • Test everything (focus on business logic)
  • Write flaky tests

Source and attribution

Source:aj-geddes/useful-ai-promptsinskills/unit-testing-frameworkat commit3f5182c

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal

Unit Testing Framework Agent Skill | SourceWeft