testing

testing is a cursor rule for coding agents from nedcodes-ok/cursorrules-collection. It costs 797 tokens per session, scanned A, original, MIT.

A set of rules for designing software tests around observable behavior. It recommends Arrange-Act-Assert: prepare the data, run the code, and check the result.

In plain words
What is it for?
Use it to plan test cases, name tests clearly, avoid shared test state, choose what behavior to verify, and decide when mocking or coverage is appropriate.
Why use it?
It helps tests stay readable, independent, and useful when code changes. It also draws attention to edge cases and error paths, not only successful inputs.

Cursor rule

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add rules/nedcodes-ok/cursorrules-collection/testing
Clone the repo
git clone --depth 1 https://github.com/nedcodes-ok/cursorrules-collection

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for testing

README.md
[![agentmods](https://agentmods.dev/badge/rules/nedcodes-ok/cursorrules-collection/testing.svg)](https://agentmods.dev/rules/nedcodes-ok/cursorrules-collection/testing)
Your own site
<a href="https://agentmods.dev/rules/nedcodes-ok/cursorrules-collection/testing"><img src="https://agentmods.dev/badge/rules/nedcodes-ok/cursorrules-collection/testing.svg" alt="Measured on agentmods" height="20"></a>
Per session 797 This file is loaded in full into every session.
When invoked 797 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00797 $0.00797
Opus 5 $0.00398 $0.00398
Sonnet 5 $0.00159 $0.00159
Haiku 4.5 $0.00080 $0.00080

Measured yesterday against content hash 0f564fdb9379, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

testing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

Copies of this mod

1 near-identical copy found in the catalogue:

  • testing — 100% identical, 0 lines differ
rules-mdc/practices/testing.mdc · 43 lines

How it starts

The opening of the file, as written. The whole thing — 43 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Testing Rules

Test Structure

  • Arrange-Act-Assert: set up data → call the thing → check the result. Consistent structure makes every test scannable
  • One behavior per test — multiple assert calls checking the same behavior is fine (assertThat(user).hasName("Alice"); assertThat(user).isActive()). Multiple unrelated assertions is not
  • Test names describe the scenario and expectation: returnsNullWhenUserNotFound, throwsWhenEmailIsDuplicate — not test1, testUser, or shouldWork
  • Tests must be independent. If reordering tests breaks them, you have shared mutable state — a test that only passes after another test runs is two bugs

What to Test

  • Test behavior from the caller's perspective, not implementation details. "When I call createOrder with valid items, I get an order with the correct total" — not "createOrder calls calculateSubtotal then calls applyTax then calls saveToDb"
  • Edge cases are where bugs live: empty collections, zero/negative values, null/undefined, boundary values (off-by-one), Unicode, very long strings, concurrent access
  • Error paths are as important as happy paths — test that invalid input returns the right error, not just that valid input works
  • Don't test framework/library code. If you're testing that Array.sort() sorts, you're wasting time. Test YOUR code's behavior when it uses the sort result

Mocking Strategy

  • Mock at boundaries: HTTP clients, databases, file system, clocks, randomness — things that are slow, non-deterministic, or have side effects
  • Never mock the system under test. If you're mocking half the class to test the other half, the class is doing too much — split it
  • Prefer fakes over mocks when the boundary is complex: an in-memory repository that implements the same interface is more realistic than 20 mock configurations
  • Verify interactions only when the interaction IS the behavior: "send email to user" needs verify(emailService).send(...). "calculate total" does not need verify(calculator).add(...) — check the result instead
  • Mock return values for queries, verify calls for commands (CQS principle applied to test doubles)

Read the full file on GitHub · 43 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 43 lines · 797 tokens per session scan A 0f564fdb9379

Subscribe to this mod's changes

testing is a cursor rule published in the GitHub repository nedcodes-ok/cursorrules-collection (37 stars, last pushed 6mo ago), licensed MIT. It adds 797 tokens to every session, about $0.0040 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.