Stats
Actions
Tags
From droids
[DROIDS-INTERNAL] Testing patterns and best practices. Only activate when invoked by droids plugin agents (test-engineer) or /droids:* commands. Do NOT auto-activate in regular conversations.
How this skill is triggered — by the user, by Claude, or both
Slash command
/droids:droids-test-patternsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use these patterns when writing tests for code changes.
Use these patterns when writing tests for code changes.
describe('Feature', () => {
it('should do something specific', () => {
// Arrange - Set up test data and conditions
const input = createTestInput();
// Act - Execute the code under test
const result = functionUnderTest(input);
// Assert - Verify the expected outcome
expect(result).toBe(expectedValue);
});
});
[Unit/Feature] should [expected behavior] when [condition]
Examples:
UserService should throw error when email is invalidLoginForm should display error message when credentials are wrongAPI should return 401 when token is expired| Type | Minimum Coverage |
|---|---|
| Unit Tests | 80% line coverage |
| Integration Tests | Critical paths covered |
| E2E Tests | Main user journeys |
it('should handle async operations', async () => {
const result = await asyncFunction();
expect(result).toBeDefined();
});
it('should throw on invalid input', () => {
expect(() => functionUnderTest(null)).toThrow('Invalid input');
});
it('should return user data', async () => {
const response = await request(app)
.get('/api/users/1')
.expect(200);
expect(response.body).toHaveProperty('id', 1);
});
jest.mock('./database');
const mockDb = require('./database');
mockDb.query.mockResolvedValue([{ id: 1 }]);
import { render, screen, fireEvent } from '@testing-library/react';
test('submits form with user data', async () => {
render(<LoginForm />);
fireEvent.change(screen.getByLabelText('Email'), {
target: { value: '[email protected]' }
});
fireEvent.click(screen.getByRole('button', { name: 'Submit' }));
await screen.findByText('Success');
});
import pytest
def test_function_returns_expected():
result = my_function(input_data)
assert result == expected_output
@pytest.mark.parametrize("input,expected", [
(1, 2),
(2, 4),
(3, 6),
])
def test_multiply_by_two(input, expected):
assert multiply_by_two(input) == expected
npx claudepluginhub cheluen/droids-workflow --plugin droidsGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.