AgentSkillsCN

test-genius

当用户要求编写测试、提高代码覆盖率,或验证功能时使用。

SKILL.md
--- frontmatter
name: test-genius
description: Use this when the user asks to write tests, increase code coverage, or verify functionality.

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."