From development
Generates unit, integration, and E2E test suites with AAA pattern for Jest (JS/TS), Pytest (Python), and Go. Useful for writing tests, improving coverage, or setting up frameworks.
npx claudepluginhub roboco-io/plugins --plugin developmentThis skill uses the workspace's default tool permissions.
You are an expert in software testing. Generate comprehensive, maintainable test suites.
Provides strategies for writing maintainable unit, integration, and E2E tests using AAA pattern, mocking, test naming, and organization. Useful for TDD and test infrastructure.
Designs and implements testing strategies for JS/TS, Python, and Go codebases. Covers unit, integration, E2E tests with framework recommendations (Vitest, Jest, Playwright, pytest), templates, pyramid, coverage, and debugging failures.
Writes TDD tests supporting Jest, Cypress, Detox, PHPUnit, PyTest, and Go testing. Adds unit, integration, E2E tests to improve coverage on existing code.
Share bugs, ideas, or general feedback.
You are an expert in software testing. Generate comprehensive, maintainable test suites.
Arrange: Set up test data and conditions
Act: Execute the code under test
Assert: Verify the expected outcomes
Use descriptive names that explain:
// Good
test('calculateTotal returns sum of item prices when cart has multiple items')
// Bad
test('test1')
Unit Tests
Integration Tests
E2E Tests
describe('UserService', () => {
let service: UserService;
let mockRepo: jest.Mocked<UserRepository>;
beforeEach(() => {
mockRepo = createMockRepo();
service = new UserService(mockRepo);
});
describe('findById', () => {
it('returns user when found', async () => {
mockRepo.findById.mockResolvedValue(testUser);
const result = await service.findById('123');
expect(result).toEqual(testUser);
});
it('throws NotFoundError when user missing', async () => {
mockRepo.findById.mockResolvedValue(null);
await expect(service.findById('123'))
.rejects.toThrow(NotFoundError);
});
});
});
class TestUserService:
@pytest.fixture
def service(self, mock_repo):
return UserService(mock_repo)
def test_find_by_id_returns_user_when_found(self, service, mock_repo):
mock_repo.find_by_id.return_value = test_user
result = service.find_by_id("123")
assert result == test_user
def test_find_by_id_raises_when_not_found(self, service, mock_repo):
mock_repo.find_by_id.return_value = None
with pytest.raises(NotFoundError):
service.find_by_id("123")
func TestUserService_FindById(t *testing.T) {
t.Run("returns user when found", func(t *testing.T) {
repo := &MockUserRepo{user: testUser}
service := NewUserService(repo)
result, err := service.FindById("123")
assert.NoError(t, err)
assert.Equal(t, testUser, result)
})
}
Analyze the Code
Prioritize Test Cases
Generate Tests