搜索

PythonReactSEOPDF
GitHub Skill

scenario-testing

This skill should be used when writing tests, validating features, or needing to verify code works. Triggers on "write tests", "add test coverage", "validate feature", "integration test", "end-to-end", "e2e test", "mock", "unit test". Enforces scenario-driven testing with real dependencies in .scratch/ directory.

aiskillstore☆ 123 仓库 Stars6 仓库 Forks

安装与使用

请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。

查看来源 ↗使用指南

技能说明

Scenario-Driven Testing for AI Code Generation

Core Principle

The Iron Law: "NO FEATURE IS VALIDATED UNTIL A SCENARIO PASSES WITH REAL DEPENDENCIES"

Mocks create false confidence. Only scenarios exercising real systems validate that code works.

The Truth Hierarchy

  1. Scenario tests (real system, real data) = truth
  2. Unit tests (isolated) = human comfort only
  3. Mocks = lies hiding bugs

As stated in the principle: "A test that uses mocks is not testing your system. It's testing your assumptions about how dependencies behave."

When to Use This Skill

  • Validating new functionality
  • Before declaring work complete
  • When tempted to use mocks
  • After fixing bugs requiring verification
  • Any time you need to prove code works

Required Practices

1. Write Scenarios in .scratch/
  • Use any language appropriate to the task
  • Exercise the real system end-to-end
  • Zero mocks allowed
  • Must be in .gitignore (never commit)
2. Promote Patterns to scenarios.jsonl
  • Extract recurring scenarios as documented specifications
  • One JSON line per scenario
  • Include: name, description, given/when/then, validates
  • This file IS committed
3. Use Real Dependencies

External APIs must hit actual services (sandbox/test mode acceptable). Mocking any dependency invalidates the scenario.

4. Independence Requirement

Each scenario must run standalone without depending on prior executions. This enables:

  • Parallel execution
  • Prevents hidden ordering dependencies
  • Reliable CI/CD integration

What Makes a Scenario Invalid

A scenario is invalid if it:

  • Contains any mocks whatsoever
  • Uses fake data instead of real storage
  • Depends on another scenario running first
  • Never actually executed to verify it passes

Common Violations to Avoid

Reject these rationalizations:

  • "Just a quick unit test..." - Unit tests don't validate features
  • "Too simple for end-to-end..." - Integration breaks simple things
  • "I'll mock for speed..." - Speed doesn't matter if tests lie
  • "I don't have API credentials..." - Ask your human partner for real ones

Definition of Done

A feature is complete only when:

  1. ✅ A scenario in .scratch/ passes with zero mocks
  2. ✅ Real dependencies are exercised
  3. ✅ .scratch/ remains in .gitignore
  4. ✅ Robust patterns extracted to scenarios.jsonl

Example Workflow

  1. Write scenario - Create .scratch/test-user-registration.py
  2. Use real dependencies - Hit real database, real auth service (test mode)
  3. Run and verify - Execute scenario, confirm it passes
  4. Extract pattern - Document in scenarios.jsonl
  5. Keep .scratch ignored - Never commit scratch scenarios

Why This Matters

  • Unit tests verify isolated logic
  • Integration tests verify components work together
  • Scenario tests verify the system actually works

Only scenario tests prove your feature delivers value to users.

使用示例

查看来源仓库中的使用示例与配置说明。

查看来源 ↗

来源历史

收录时间
2026-01-20
索引更新时间
2026-01-28
Branch
main

收录与同步日期属于本站记录。源码修改历史请查看来源仓库。

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!