AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Test Driven Development

skill-rbraga01-a-team-test-driven-development · by RBraga01

Enforce RED-GREEN-REFACTOR discipline for every implementation task. Use for all new features, bug fixes, and refactors. The core rule — if you didn't watch the test fail, you don't know if it tests the right thing.

No reviews yet
0 installs
35 views
0.0% view→install

Install

$ agentstack add skill-rbraga01-a-team-test-driven-development

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-rbraga01-a-team-test-driven-development)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Test Driven Development? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Test-Driven Development

The Core Rule

IF YOU DIDN'T WATCH THE TEST FAIL, YOU DON'T KNOW IF IT TESTS THE RIGHT THING.

A green test you've never seen red is not a test — it's a decoration.

The Three Phases (Non-Negotiable)

Phase RED — Write a Failing Test

Write the test FIRST. Not after. Not "I'll add it later." First.

The test must:

  • Describe the behavior you want, not the implementation
  • Be specific enough to fail for the right reason
  • Cover the exact scenario you're about to implement
// RED: Write this BEFORE writing the function
test('returns empty array when no users match the filter', () => {
  const result = filterActiveUsers([])
  expect(result).toEqual([])
})

Run it. Watch it fail.

npm test -- --testPathPattern="user-filter"
# Expected: FAIL (function doesn't exist yet)

If the test passes before you write the implementation: the test is wrong. Rewrite it.

Phase GREEN — Write Minimal Implementation

Write the smallest possible code that makes the test pass. Nothing more.

  • No extra features "while I'm here"
  • No optimization
  • No handling of edge cases not yet covered by tests
  • Ugly code that passes is better than beautiful code that doesn't exist yet
// GREEN: Minimal implementation that passes the test
function filterActiveUsers(users: User[]): User[] {
  return users.filter(u => u.active)
}

Run it. Watch it pass.

npm test -- --testPathPattern="user-filter"
# Expected: PASS

If it still fails: read the error message carefully. Fix only what the message tells you.

Phase REFACTOR — Improve Without Breaking

Now clean up. Rename, extract, simplify — while keeping tests green.

# Run tests continuously during refactor
npm test -- --watch --testPathPattern="user-filter"

Rules during refactor:

  • Tests must stay green at every step
  • No new behavior — only structural improvement
  • If tests go red: undo the last change, understand why

Adding More Tests (Expand-Contract Pattern)

After GREEN for the first case, expand coverage:

RED  → watch new test fail
GREEN → minimal code to pass
RED  → add next edge case test
GREEN → handle the edge case
...
REFACTOR → clean up all at once when coverage is complete

Cover in order:

  1. Happy path (basic success case)
  2. Empty / null inputs
  3. Boundary values (min, max, exactly-at-limit)
  4. Error paths (invalid input, dependency failure)
  5. Concurrent / race conditions if applicable

What to Test vs. What NOT to Test

Test:

  • Public API surface (exported functions, class methods, HTTP endpoints)
  • Business logic decisions
  • Data transformations
  • Error handling

Do NOT test:

  • Implementation details (private functions, internal state)
  • Third-party library behavior
  • Framework internals

Mocking External Dependencies

External dependencies (database, APIs, file system) must be mocked in unit tests:

// Mock the DB before testing the service
jest.mock('../db/users')
const mockFindUser = db.findUser as jest.MockedFunction
mockFindUser.mockResolvedValue({ id: '1', name: 'Alice', active: true })

Integration tests should hit real dependencies — but unit tests must be fast and isolated.

Coverage Gate

After each feature or bug fix, verify coverage meets the project minimum:

npm run test:coverage
# Required: ≥ 80% branches, functions, lines, statements

If coverage drops below threshold: add tests before moving on.

TDD Red Flags — You're Doing It Wrong

  • Writing the implementation before writing the test
  • Running the test only after implementation (never seeing it red)
  • Writing tests that test the implementation, not the behavior
  • Skipping the refactor phase ("it works, ship it")
  • Writing multiple failing tests before making any pass
  • Adding edge cases without first making them fail

If you catch yourself rationalizing any of these: stop, revert to the last green state, and start the RED phase properly.

Integration with A Team Workflow

TDD fits into the full workflow:

  1. brainstorming → spec approved
  2. writing-plans → plan with test strategy included
  3. test-driven-development ← you are here, per task
  4. subagent-driven-development → each subagent runs TDD internally
  5. verification-before-completion → final proof before claiming done
  6. finishing-a-development-branch → branch wrap-up

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.