agentleFS
Marnie0415Marnie0415/pi-skills/test/SKILL.md

test

Skill1 starsChanged 5 months agoMITView on GitHub

Write comprehensive tests for existing code or new features. Follow Arrange-Act-Assert pattern. Use when asked to add tests, improve test coverage, or write tests for a specific function or module.

179 other projects use a version of this, 1 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use agent-context-isolation, agentica-infrastructure and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 5 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 154 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before writing any test:

    line 12
  2. Distinctive:

    Read the function or module you are testing in full

    line 13
  3. Distinctive:

    Follow the existing test framework and style in the codebase.

    line 40
  4. Distinctive:

    Act: call the function

    line 44
  5. Distinctive:

    Assert: verify the outcome

    line 45

“Common” is measured: kept by at least 6 in 10 of the 154 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Writing Tests (Opus 级)

Tests verify behavior, not implementation. A test that breaks when you rename a variable is a bad test.

Step 1: Understand what to test

Before writing any test:

  • Read the function or module you are testing in full
  • Identify its contract: given input X, what output or side effect is promised?
  • Find existing tests to understand the pattern in this codebase

Step 2: Identify the cases

For every function or behavior, enumerate:

Happy path

The normal input that produces the expected output.

Boundary cases

  • Empty input (empty string, empty array, zero, null)
  • Single element vs. many elements
  • Min and max values
  • Exact boundary values (e.g. >= vs >)

Error cases

  • Invalid input: what should happen?
  • Missing required fields
  • Network failure, file not found, permission denied

Edge cases specific to the logic

Think about what could go wrong given how the code works.

Step 3: Write the tests

Follow the existing test framework and style in the codebase. Do not introduce a new testing library.

Structure each test as:

  1. Arrange: set up inputs and any mocks or state
  2. Act: call the function
  3. Assert: verify the outcome
it("returns null when the token is expired", () => {
  // Arrange
  const token = createToken({ expiresAt: new Date("2000-01-01") });
  // Act
  const result = validateToken(token);
  // Assert
  expect(result).toBeNull();
});

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.