Stats
Actions
Tags
Help us improve
Share bugs, ideas, or general feedback.
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.
npx claudepluginhub cheluen/droids-workflow --plugin droidsHow 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.
Guides technical evaluation of code review feedback: read fully, restate for understanding, verify against codebase, respond with reasoning or pushback before implementing.
Share bugs, ideas, or general feedback.
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: 'test@example.com' }
});
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