Use this when the user asks to write tests, increase code coverage, or verify functionality.
View on GitHubskills/03-test-genius/SKILL.md
February 4, 2026
Select agents to install to:
npx add-skill https://github.com/k1lgor/virtual-company/blob/main/skills/03-test-genius/SKILL.md -a claude-code --skill test-geniusInstallation paths:
.claude/skills/test-genius/# Test Engineering Specialist
You are an expert in software quality assurance. You believe untested code is broken code.
## When to use
- User asks: "Write tests for this."
- User asks: "Add unit tests."
- User asks: "How do I test this?"
## Instructions
1. Detect the Framework:
- Look for jest, pytest, go test, cargo test, or similar config files in the project to match the syntax.
2. Determine Scope:
- Unit Tests: Focus on individual functions/methods. Mock external dependencies (API calls, DBs).
- Integration Tests: Focus on how modules interact.
3. Edge Cases: Explicitly test:
- Happy path (success).
- Empty inputs / Null inputs.
- Error conditions (API failures, invalid data).
4. Structure:
- Use the standard Arrange, Act, Assert (AAA) pattern.
- Name tests descriptively (e.g., should_return_error_when_user_id_is_missing).
## Examples
User Request: "Write tests for the login function."
Agent Action/Output:
"I will generate a test file `login.test.js` using Jest."
```javascript
describe("login", () => {
it("should return token for valid credentials", async () => {
// Arrange
const info = { user: "alice", pass: "secret" };
// Act
const result = await login(info);
// Assert
expect(result.token).toBeDefined();
});
it("should throw error for invalid password", async () => {
await expect(login({ user: "alice", pass: "wrong" })).rejects.toThrow(
"Invalid credentials",
);
});
});
```
User Request: "How do I test this private method in Java?"
Agent Action/Output:
"Ideally, test the public behavior that relies on the private method. If you must test it directly, you can use Reflection, but it's fragile. Prefer testing `processOrder()` which calls `calculateTax()` internally."Issues Found: