U
unit-testing-framework
About unit-testing-framework
A unit-testing guide for developers focused on fast, isolated, readable, and maintainable tests. It covers the AAA pattern, mocks, asynchronous code, and edge cases.
Key features
- 01Apply the AAA test pattern
- 02Cover edge and error cases
- 03Mock external dependencies
- 04Test async code and coverage
- 05Use language-specific test guides
Use cases
- 01Write tests for new code
- 02Refactor with test safety
- 03Establish team testing standards
- 04Create test utilities and mocks
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill unit-testing-frameworkAfter installing, type/unit-testing-frameworkin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/example-complete-test-suite.mdmocking-test-doubles.mdtest-cases-by-language.mdtest-structure-aaa-pattern.mdtesting-async-code.mdtesting-edge-cases.mdscripts/scaffold-tests.shtemplates/test-template.jsDetails
From the project READMEUnit 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:
// Jest/JavaScript example
describe("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:
| Guide | Contents |
|---|---|
| Test Structure (AAA Pattern) | Test Structure (AAA Pattern) |
| Test Cases by Language | Test Cases by Language |
| Mocking & Test Doubles | Mocking & Test Doubles |
| Testing Async Code | Testing Async Code, Test Coverage |
| Testing Edge Cases | Testing Edge Cases |
| Example: Complete Test Suite | 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
Comments
Markdown supported