From asyrafhussin-agent-skills-1
Guides unit testing, integration testing, and TDD with 34 rules across 7 categories. Activates on 'write tests', 'review tests', 'testing best practices', or 'TDD'.
How this skill is triggered — by the user, by Claude, or both
Slash command
/asyrafhussin-agent-skills-1:testing-best-practicesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Unit testing, integration testing, and TDD principles for reliable, maintainable test suites. Contains 34 rules across 7 categories using TypeScript with Jest/Vitest.
AGENTS.mdREADME.mdmetadata.jsonrules/_sections.mdrules/_template.mdrules/assert-custom-matchers.mdrules/assert-expected-actual.mdrules/assert-meaningful-messages.mdrules/assert-no-magic-numbers.mdrules/assert-specific.mdrules/cov-edge-cases.mdrules/cov-meaningful.mdrules/cov-not-100-percent.mdrules/cov-unhappy-paths.mdrules/data-builders.mdrules/data-factories.mdrules/data-faker.mdrules/data-fixtures.mdrules/data-minimal.mdrules/data-realistic.mdUnit testing, integration testing, and TDD principles for reliable, maintainable test suites. Contains 34 rules across 7 categories using TypeScript with Jest/Vitest.
Reference these guidelines when:
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Test Structure | CRITICAL | struct- |
| 2 | Test Isolation | CRITICAL | iso- |
| 3 | Assertions | HIGH | assert- |
| 4 | Test Data | HIGH | data- |
| 5 | Mocking | MEDIUM | mock- |
| 6 | Coverage | MEDIUM | cov- |
| 7 | Performance | LOW | perf- |
struct-aaa-pattern - Arrange, Act, Assert patternstruct-descriptive-names - Descriptive test namesstruct-one-assertion - One logical assertion per teststruct-describe-it - Organized test suites with describe/itstruct-given-when-then - BDD style when appropriatestruct-setup-teardown - Proper setup and teardowniso-independent-tests - Tests run independentlyiso-no-shared-state - No shared mutable stateiso-deterministic - Same result every runiso-no-order-dependency - Run in any orderiso-cleanup - Clean up after testsiso-test-doubles - Strategic use of test doublesassert-specific - Use specific assertionsassert-meaningful-messages - Helpful failure messagesassert-expected-actual - Expected value firstassert-no-magic-numbers - Use named constantsassert-custom-matchers - Custom matchers for domain logicdata-factories - Use factories for test datadata-builders - Builder pattern for complex objectsdata-faker - Generate realistic fake datadata-minimal - Minimal test datadata-realistic - Realistic edge casesdata-fixtures - Manage test fixturesmock-boundaries - Mock only at boundariesmock-verify-interactions - Verify important mock callsmock-minimal - Don't over-mockmock-realistic - Realistic mock behavior with MSWcov-meaningful - Focus on meaningful coveragecov-edge-cases - Cover edge cases and boundary valuescov-unhappy-paths - Test error scenarioscov-not-100-percent - 100% coverage isn't the goalperf-fast-unit - Keep unit tests fast (<50ms each)perf-parallel - Run tests in parallelperf-test-organization - Organize tests for fast feedbackit('calculates total with discount', () => {
// Arrange
const cart = new ShoppingCart();
cart.addItem({ name: 'Book', price: 20 });
cart.applyDiscount(0.1);
// Act
const total = cart.getTotal();
// Assert
expect(total).toBe(18);
});
// ✅ Describes behavior and scenario
describe('UserService.register', () => {
it('creates user with hashed password', () => {});
it('throws ValidationError when email is invalid', () => {});
it('sends welcome email after successful registration', () => {});
});
// ✅ Each test sets up its own data
beforeEach(() => {
mockRepository = { save: vi.fn(), find: vi.fn() };
service = new OrderService(mockRepository);
});
Read individual rule files for detailed explanations:
rules/struct-aaa-pattern.md
rules/iso-independent-tests.md
rules/mock-boundaries.md
rules/cov-meaningful.md
For the complete guide with all rules expanded: AGENTS.md
npx claudepluginhub joshuarweaver/cascade-code-languages-misc-1 --plugin asyrafhussin-agent-skills-1Guides test-driven development with red-green-refactor workflow, test design principles, isolation, and data management. Includes 42 prioritized rules for writing tests first.
Provides strategies for writing maintainable unit, integration, and E2E tests using AAA pattern, mocking, test naming, and organization. Useful for TDD and test infrastructure.
Provides framework-agnostic testing principles covering test philosophy, structure, and mocking boundaries. Use when writing, reviewing, or debugging tests.