Token导航 LogoToken导航TokenDH.com
研究检索external-servicegithub未标认证来源可访问许可证需确认审计未展示

ring%3atesting-anti-patternsRing%3 正在测试反模式

Agent Skill

用于辅助测试设计、自动化测试、用例整理和回归验证。它适合让 Agent 编写单元测试、端到端测试、测试计划或根据失败日志定位问题。使用时需要确认项目测试框架、运行命令和夹具数据,避免为了通过测试而改坏真实逻辑;涉及浏览器或外部服务时,应区分本地模拟、测试环境和生产环境。

总安装

832

周安装

34

GitHub Stars

180

下载量

269
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:ring%3atesting-anti-patterns(Ring%3 正在测试反模式)
来源仓库:https://github.com/lerianstudio/ring
仓库路径:skills/ring%3Atesting-anti-patterns
安装命令:
npx skills add https://github.com/lerianstudio/ring --skill ring:testing-anti-patterns
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/lerianstudio/ring --skill ring:testing-anti-patterns

简介

用于辅助测试设计、自动化测试、用例整理和回归验证。

  • 适合编写单元测试、端到端测试或根据失败日志定位问题。
  • 使用时需确认项目测试框架、运行命令和夹具数据,避免误改逻辑。
  • 涉及浏览器或外部服务时,应区分本地模拟与生产环境。
  • ring%3atesting-anti-patterns 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Testing Anti-Patterns

Overview

Tests must verify real behavior, not mock behavior. Mocks are a means to isolate, not the thing being tested.

Core principle: Test what the code does, not what the mocks do.

Following strict TDD prevents these anti-patterns.

The Iron Laws

1. NEVER test mock behavior
2. NEVER add test-only methods to production classes
3. NEVER mock without understanding dependencies

Anti-Pattern 1: Testing Mock Behavior

BAD: expect(screen.getByTestId('sidebar-mock')).toBeInTheDocument() - testing mock exists, not real behavior.

GOOD: expect(screen.getByRole('navigation')).toBeInTheDocument() - test real component or don't mock.

Gate: Before asserting on mock element → "Am I testing real behavior or mock existence?" If mock → delete assertion or unmock.

Anti-Pattern 2: Test-Only Methods in Production

BAD: session.destroy() method only used in tests - pollutes production, dangerous if called.

GOOD: cleanupSession(session) in test-utils/ - keeps production clean.

Gate: "Is this method only used by tests?" → Put in test utilities. "Does this class own this lifecycle?" → If no, wrong class.

Anti-Pattern 3: Mocking Without Understanding

BAD: Mocking discoverAndCacheTools breaks config write test depends on - test passes for wrong reason.

GOOD: Mock only the slow part (MCPServerManager), preserve behavior test needs.

Gate: Before mocking → (1) What side effects does real method have? (2) Does test depend on them? If yes → mock at lower level. Red flags: "Mock to be safe", "might be slow", mocking without understanding.

Anti-Pattern 4: Incomplete Mocks

BAD: Partial mock missing metadata field - breaks when downstream code accesses response.metadata.requestId.

GOOD: Complete mock mirroring real API - ALL fields real API returns.

Iron Rule: Mock COMPLETE data structure, not just fields your test uses. Partial mocks fail silently.

Gate: Before mock → Check real API response, include ALL fields. If uncertain → include all documented fields.

Anti-Pattern 5: Integration Tests as Afterthought

BAD: "Implementation complete" without tests. FIX: TDD cycle: write test → implement → refactor → claim complete.

When Mocks Become Too Complex

Warning signs: Mock setup longer than test logic, mocking everything, mocks missing methods real components have. Consider: Integration tests with real components often simpler than complex mocks.

TDD Prevents These Anti-Patterns

TDD forces: (1) Think about what you're testing, (2) Watch fail confirms real behavior not mocks, (3) See what test needs before mocking. If testing mock behavior, you violated TDD.

Quick Reference

Anti-PatternFix
Assert on mock elementsTest real component or unmock it
Test-only methods in productionMove to test utilities
Mock without understandingUnderstand dependencies first, mock minimally
Incomplete mocksMirror real API completely
Tests as afterthoughtTDD - tests first
Over-complex mocksConsider integration tests

Red Flags

  • Assertion checks for *-mock test IDs
  • Methods only called in test files
  • Mock setup is >50% of test
  • Test fails when you remove mock
  • Can't explain why mock is needed
  • Mocking "just to be safe"

The Bottom Line

Mocks are tools to isolate, not things to test.

If TDD reveals you're testing mock behavior, you've gone wrong.

Fix: Test real behavior or question why you're mocking at all.

Blocker Criteria

STOP and report if:

Decision TypeBlocker ConditionRequired Action
Mock JustificationCannot explain what real behavior the mock enables testingSTOP and report
Test-Only MethodMethod exists only for test purposes in production codeSTOP and report
Incomplete MockMock missing fields that real API returnsSTOP and report
TDD ViolationTests written after implementation completeSTOP and report

Cannot Be Overridden

The following requirements CANNOT be waived:

  • Tests MUST verify real behavior, not mock existence
  • Production code CANNOT contain test-only methods
  • Mocks MUST mirror real API structures completely
  • Understanding dependencies is REQUIRED before mocking

Severity Calibration

SeverityConditionRequired Action
CRITICALAsserting on mock elements (*-mock test IDs)MUST fix immediately
CRITICALTest-only methods in production classesMUST fix immediately
HIGHMocking without understanding side effectsMUST fix before completing
HIGHIncomplete mocks missing required fieldsMUST fix before completing
MEDIUMMock setup exceeds 50% of test logicShould fix
LOWTest coverage gaps in non-critical pathsFix in next iteration

Pressure Resistance

User SaysYour Response
"Just mock it to make the test pass quickly""CANNOT mock without understanding what behavior I'm enabling tests for. Let me analyze the real dependencies first."
"Add a test-only method, it's the fastest solution""CANNOT add test-only methods to production code. I'll create a test utility instead."
"The mock doesn't need all those fields""CANNOT use incomplete mocks. Partial mocks fail silently when downstream code accesses missing fields."
"Skip TDD, we're behind schedule""CANNOT skip TDD. Writing tests after leads to testing mock behavior instead of real behavior."

Anti-Rationalization Table

RationalizationWhy It's WRONGRequired Action
"Mock makes the test simpler"Simpler test ≠ correct test. You may be testing mock existence, not behavior.MUST verify assertion tests real behavior
"Test-only method is small, doesn't hurt"Any test pollution in production is dangerous if called accidentally.MUST move to test utilities
"I know what the mock needs"Assumption ≠ verification. Check real API response.MUST verify mock completeness against real API
"Tests after is the same as TDD"Order matters. TDD reveals what to mock; tests-after tests mocks blindly.MUST follow RED-GREEN-REFACTOR
"Mocking to be safe""Safe" mocking without understanding breaks tests that depend on real behavior.MUST understand dependencies before mocking

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.02%
按下载量换算92

Claude

30.6%
按下载量换算82

Cursor

19.02%
按下载量换算51

Gemini CLI

9.06%
按下载量换算24

安全审计

暂无安全审计结果可展示。

权限和风险

external-service

该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills