universal-dev-standards 3.5.1-beta.1 → 3.5.1-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (433) hide show
  1. package/bin/uds.js +2 -0
  2. package/bundled/core/ai-instruction-standards.md +205 -0
  3. package/bundled/core/anti-hallucination.md +684 -0
  4. package/bundled/core/changelog-standards.md +556 -0
  5. package/bundled/core/checkin-standards.md +935 -0
  6. package/bundled/core/code-review-checklist.md +684 -0
  7. package/bundled/core/commit-message-guide.md +915 -0
  8. package/bundled/core/documentation-structure.md +1117 -0
  9. package/bundled/core/documentation-writing-standards.md +487 -0
  10. package/bundled/core/error-code-standards.md +382 -0
  11. package/bundled/core/git-workflow.md +859 -0
  12. package/bundled/core/logging-standards.md +323 -0
  13. package/bundled/core/project-structure.md +354 -0
  14. package/bundled/core/refactoring-standards.md +636 -0
  15. package/bundled/core/spec-driven-development.md +207 -0
  16. package/bundled/core/test-completeness-dimensions.md +536 -0
  17. package/bundled/core/test-driven-development.md +995 -0
  18. package/bundled/core/testing-standards.md +3061 -0
  19. package/bundled/core/versioning.md +902 -0
  20. package/bundled/locales/README.md +88 -0
  21. package/bundled/locales/zh-CN/CHANGELOG.md +705 -0
  22. package/bundled/locales/zh-CN/CLAUDE.md +213 -0
  23. package/bundled/locales/zh-CN/MAINTENANCE.md +689 -0
  24. package/bundled/locales/zh-CN/README.md +707 -0
  25. package/bundled/locales/zh-CN/STANDARDS-MAPPING.md +177 -0
  26. package/bundled/locales/zh-CN/adoption/ADOPTION-GUIDE.md +392 -0
  27. package/bundled/locales/zh-CN/adoption/STATIC-DYNAMIC-GUIDE.md +302 -0
  28. package/bundled/locales/zh-CN/adoption/checklists/enterprise.md +332 -0
  29. package/bundled/locales/zh-CN/adoption/checklists/minimal.md +141 -0
  30. package/bundled/locales/zh-CN/adoption/checklists/recommended.md +272 -0
  31. package/bundled/locales/zh-CN/ai/MAINTENANCE.md +739 -0
  32. package/bundled/locales/zh-CN/ai/options/changelog/auto-generated.ai.yaml +76 -0
  33. package/bundled/locales/zh-CN/ai/options/changelog/keep-a-changelog.ai.yaml +99 -0
  34. package/bundled/locales/zh-CN/ai/options/code-review/automated-review.ai.yaml +120 -0
  35. package/bundled/locales/zh-CN/ai/options/code-review/pair-programming.ai.yaml +109 -0
  36. package/bundled/locales/zh-CN/ai/options/code-review/pr-review.ai.yaml +104 -0
  37. package/bundled/locales/zh-CN/ai/options/commit-message/bilingual.ai.yaml +105 -0
  38. package/bundled/locales/zh-CN/ai/options/commit-message/english.ai.yaml +79 -0
  39. package/bundled/locales/zh-CN/ai/options/commit-message/traditional-chinese.ai.yaml +100 -0
  40. package/bundled/locales/zh-CN/ai/options/documentation/api-docs.ai.yaml +140 -0
  41. package/bundled/locales/zh-CN/ai/options/documentation/markdown-docs.ai.yaml +89 -0
  42. package/bundled/locales/zh-CN/ai/options/documentation/wiki-style.ai.yaml +119 -0
  43. package/bundled/locales/zh-CN/ai/options/git-workflow/gitflow.ai.yaml +133 -0
  44. package/bundled/locales/zh-CN/ai/options/git-workflow/github-flow.ai.yaml +73 -0
  45. package/bundled/locales/zh-CN/ai/options/git-workflow/merge-commit.ai.yaml +88 -0
  46. package/bundled/locales/zh-CN/ai/options/git-workflow/rebase-ff.ai.yaml +113 -0
  47. package/bundled/locales/zh-CN/ai/options/git-workflow/squash-merge.ai.yaml +85 -0
  48. package/bundled/locales/zh-CN/ai/options/git-workflow/trunk-based.ai.yaml +117 -0
  49. package/bundled/locales/zh-CN/ai/options/project-structure/dotnet.ai.yaml +108 -0
  50. package/bundled/locales/zh-CN/ai/options/project-structure/go.ai.yaml +115 -0
  51. package/bundled/locales/zh-CN/ai/options/project-structure/java.ai.yaml +113 -0
  52. package/bundled/locales/zh-CN/ai/options/project-structure/kotlin.ai.yaml +123 -0
  53. package/bundled/locales/zh-CN/ai/options/project-structure/nodejs.ai.yaml +101 -0
  54. package/bundled/locales/zh-CN/ai/options/project-structure/php.ai.yaml +147 -0
  55. package/bundled/locales/zh-CN/ai/options/project-structure/python.ai.yaml +116 -0
  56. package/bundled/locales/zh-CN/ai/options/project-structure/ruby.ai.yaml +140 -0
  57. package/bundled/locales/zh-CN/ai/options/project-structure/rust.ai.yaml +117 -0
  58. package/bundled/locales/zh-CN/ai/options/project-structure/swift.ai.yaml +143 -0
  59. package/bundled/locales/zh-CN/ai/options/testing/contract-testing.ai.yaml +254 -0
  60. package/bundled/locales/zh-CN/ai/options/testing/e2e-testing.ai.yaml +116 -0
  61. package/bundled/locales/zh-CN/ai/options/testing/industry-pyramid.ai.yaml +144 -0
  62. package/bundled/locales/zh-CN/ai/options/testing/integration-testing.ai.yaml +90 -0
  63. package/bundled/locales/zh-CN/ai/options/testing/istqb-framework.ai.yaml +108 -0
  64. package/bundled/locales/zh-CN/ai/options/testing/performance-testing.ai.yaml +272 -0
  65. package/bundled/locales/zh-CN/ai/options/testing/security-testing.ai.yaml +160 -0
  66. package/bundled/locales/zh-CN/ai/options/testing/system-testing.ai.yaml +101 -0
  67. package/bundled/locales/zh-CN/ai/options/testing/unit-testing.ai.yaml +82 -0
  68. package/bundled/locales/zh-CN/ai/standards/anti-hallucination.ai.yaml +145 -0
  69. package/bundled/locales/zh-CN/ai/standards/changelog.ai.yaml +146 -0
  70. package/bundled/locales/zh-CN/ai/standards/checkin-standards.ai.yaml +170 -0
  71. package/bundled/locales/zh-CN/ai/standards/code-review.ai.yaml +148 -0
  72. package/bundled/locales/zh-CN/ai/standards/commit-message.ai.yaml +175 -0
  73. package/bundled/locales/zh-CN/ai/standards/documentation-structure.ai.yaml +124 -0
  74. package/bundled/locales/zh-CN/ai/standards/documentation-writing-standards.ai.yaml +190 -0
  75. package/bundled/locales/zh-CN/ai/standards/error-codes.ai.yaml +139 -0
  76. package/bundled/locales/zh-CN/ai/standards/git-workflow.ai.yaml +95 -0
  77. package/bundled/locales/zh-CN/ai/standards/logging.ai.yaml +128 -0
  78. package/bundled/locales/zh-CN/ai/standards/project-structure.ai.yaml +134 -0
  79. package/bundled/locales/zh-CN/ai/standards/spec-driven-development.ai.yaml +169 -0
  80. package/bundled/locales/zh-CN/ai/standards/test-completeness-dimensions.ai.yaml +220 -0
  81. package/bundled/locales/zh-CN/ai/standards/testing.ai.yaml +137 -0
  82. package/bundled/locales/zh-CN/ai/standards/versioning.ai.yaml +211 -0
  83. package/bundled/locales/zh-CN/core/ai-instruction-standards.md +213 -0
  84. package/bundled/locales/zh-CN/core/anti-hallucination.md +691 -0
  85. package/bundled/locales/zh-CN/core/changelog-standards.md +147 -0
  86. package/bundled/locales/zh-CN/core/checkin-standards.md +943 -0
  87. package/bundled/locales/zh-CN/core/code-review-guide.md +693 -0
  88. package/bundled/locales/zh-CN/core/commit-message-guide.md +129 -0
  89. package/bundled/locales/zh-CN/core/documentation-structure.md +173 -0
  90. package/bundled/locales/zh-CN/core/documentation-writing-standards.md +495 -0
  91. package/bundled/locales/zh-CN/core/error-code-standards.md +180 -0
  92. package/bundled/locales/zh-CN/core/git-workflow.md +193 -0
  93. package/bundled/locales/zh-CN/core/logging-standards.md +174 -0
  94. package/bundled/locales/zh-CN/core/project-structure.md +184 -0
  95. package/bundled/locales/zh-CN/core/refactoring-standards.md +642 -0
  96. package/bundled/locales/zh-CN/core/spec-driven-development.md +215 -0
  97. package/bundled/locales/zh-CN/core/test-completeness-dimensions.md +544 -0
  98. package/bundled/locales/zh-CN/core/test-driven-development.md +1002 -0
  99. package/bundled/locales/zh-CN/core/testing-standards.md +170 -0
  100. package/bundled/locales/zh-CN/core/versioning.md +177 -0
  101. package/bundled/locales/zh-CN/docs/AI-AGENT-ROADMAP.md +303 -0
  102. package/bundled/locales/zh-CN/docs/CLI-INIT-OPTIONS.md +990 -0
  103. package/bundled/locales/zh-CN/docs/OPERATION-WORKFLOW.md +1064 -0
  104. package/bundled/locales/zh-CN/docs/USAGE-MODES-COMPARISON.md +333 -0
  105. package/bundled/locales/zh-CN/docs/WINDOWS-GUIDE.md +215 -0
  106. package/bundled/locales/zh-CN/integrations/codex/AGENTS.md +115 -0
  107. package/bundled/locales/zh-CN/integrations/codex/README.md +67 -0
  108. package/bundled/locales/zh-CN/integrations/gemini-cli/GEMINI.md +102 -0
  109. package/bundled/locales/zh-CN/integrations/gemini-cli/README.md +140 -0
  110. package/bundled/locales/zh-CN/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +269 -0
  111. package/bundled/locales/zh-CN/integrations/github-copilot/README.md +167 -0
  112. package/bundled/locales/zh-CN/integrations/github-copilot/copilot-instructions.md +263 -0
  113. package/bundled/locales/zh-CN/integrations/github-copilot/skills-mapping.md +192 -0
  114. package/bundled/locales/zh-CN/integrations/google-antigravity/INSTRUCTIONS.md +61 -0
  115. package/bundled/locales/zh-CN/integrations/google-antigravity/README.md +84 -0
  116. package/bundled/locales/zh-CN/integrations/opencode/AGENTS.md +111 -0
  117. package/bundled/locales/zh-CN/integrations/opencode/README.md +176 -0
  118. package/bundled/locales/zh-CN/integrations/opencode/skills-mapping.md +396 -0
  119. package/bundled/locales/zh-CN/integrations/openspec/AGENTS.md +301 -0
  120. package/bundled/locales/zh-CN/integrations/openspec/README.md +43 -0
  121. package/bundled/locales/zh-CN/integrations/spec-kit/AGENTS.md +184 -0
  122. package/bundled/locales/zh-CN/integrations/spec-kit/README.md +43 -0
  123. package/bundled/locales/zh-CN/options/commit-message/bilingual.md +161 -0
  124. package/bundled/locales/zh-CN/options/commit-message/english.md +137 -0
  125. package/bundled/locales/zh-CN/options/commit-message/traditional-chinese.md +162 -0
  126. package/bundled/locales/zh-CN/options/git-workflow/gitflow.md +147 -0
  127. package/bundled/locales/zh-CN/options/git-workflow/github-flow.md +124 -0
  128. package/bundled/locales/zh-CN/options/git-workflow/merge-commit.md +124 -0
  129. package/bundled/locales/zh-CN/options/git-workflow/rebase-ff.md +160 -0
  130. package/bundled/locales/zh-CN/options/git-workflow/squash-merge.md +117 -0
  131. package/bundled/locales/zh-CN/options/git-workflow/trunk-based.md +125 -0
  132. package/bundled/locales/zh-CN/options/project-structure/dotnet.md +183 -0
  133. package/bundled/locales/zh-CN/options/project-structure/go.md +226 -0
  134. package/bundled/locales/zh-CN/options/project-structure/java.md +213 -0
  135. package/bundled/locales/zh-CN/options/project-structure/nodejs.md +185 -0
  136. package/bundled/locales/zh-CN/options/project-structure/python.md +229 -0
  137. package/bundled/locales/zh-CN/options/testing/e2e-testing.md +207 -0
  138. package/bundled/locales/zh-CN/options/testing/integration-testing.md +230 -0
  139. package/bundled/locales/zh-CN/options/testing/system-testing.md +183 -0
  140. package/bundled/locales/zh-CN/options/testing/unit-testing.md +165 -0
  141. package/bundled/locales/zh-CN/skills/INTEGRATION-GUIDE.md +218 -0
  142. package/bundled/locales/zh-CN/skills/README.md +134 -0
  143. package/bundled/locales/zh-CN/skills/_shared/README.md +68 -0
  144. package/bundled/locales/zh-CN/skills/claude-code/CONTRIBUTING.template.md +151 -0
  145. package/bundled/locales/zh-CN/skills/claude-code/README.md +174 -0
  146. package/bundled/locales/zh-CN/skills/claude-code/ai-collaboration-standards/SKILL.md +175 -0
  147. package/bundled/locales/zh-CN/skills/claude-code/ai-collaboration-standards/anti-hallucination.md +223 -0
  148. package/bundled/locales/zh-CN/skills/claude-code/ai-collaboration-standards/certainty-labels.md +132 -0
  149. package/bundled/locales/zh-CN/skills/claude-code/changelog-guide/SKILL.md +237 -0
  150. package/bundled/locales/zh-CN/skills/claude-code/checkin-assistant/SKILL.md +407 -0
  151. package/bundled/locales/zh-CN/skills/claude-code/code-review-assistant/SKILL.md +154 -0
  152. package/bundled/locales/zh-CN/skills/claude-code/code-review-assistant/checkin-checklist.md +257 -0
  153. package/bundled/locales/zh-CN/skills/claude-code/code-review-assistant/review-checklist.md +246 -0
  154. package/bundled/locales/zh-CN/skills/claude-code/commands/bdd.md +142 -0
  155. package/bundled/locales/zh-CN/skills/claude-code/commands/methodology.md +274 -0
  156. package/bundled/locales/zh-CN/skills/claude-code/commit-standards/SKILL.md +191 -0
  157. package/bundled/locales/zh-CN/skills/claude-code/commit-standards/conventional-commits.md +264 -0
  158. package/bundled/locales/zh-CN/skills/claude-code/commit-standards/language-options.md +172 -0
  159. package/bundled/locales/zh-CN/skills/claude-code/documentation-guide/SKILL.md +421 -0
  160. package/bundled/locales/zh-CN/skills/claude-code/documentation-guide/documentation-structure.md +357 -0
  161. package/bundled/locales/zh-CN/skills/claude-code/documentation-guide/readme-template.md +412 -0
  162. package/bundled/locales/zh-CN/skills/claude-code/error-code-guide/SKILL.md +269 -0
  163. package/bundled/locales/zh-CN/skills/claude-code/git-workflow-guide/SKILL.md +218 -0
  164. package/bundled/locales/zh-CN/skills/claude-code/git-workflow-guide/branch-naming.md +220 -0
  165. package/bundled/locales/zh-CN/skills/claude-code/git-workflow-guide/git-workflow.md +321 -0
  166. package/bundled/locales/zh-CN/skills/claude-code/logging-guide/SKILL.md +285 -0
  167. package/bundled/locales/zh-CN/skills/claude-code/methodology-system/SKILL.md +131 -0
  168. package/bundled/locales/zh-CN/skills/claude-code/methodology-system/create-methodology.md +350 -0
  169. package/bundled/locales/zh-CN/skills/claude-code/methodology-system/runtime.md +279 -0
  170. package/bundled/locales/zh-CN/skills/claude-code/project-structure-guide/SKILL.md +143 -0
  171. package/bundled/locales/zh-CN/skills/claude-code/project-structure-guide/language-patterns.md +271 -0
  172. package/bundled/locales/zh-CN/skills/claude-code/refactoring-assistant/SKILL.md +162 -0
  173. package/bundled/locales/zh-CN/skills/claude-code/release-standards/SKILL.md +191 -0
  174. package/bundled/locales/zh-CN/skills/claude-code/release-standards/changelog-format.md +247 -0
  175. package/bundled/locales/zh-CN/skills/claude-code/release-standards/release-workflow.md +345 -0
  176. package/bundled/locales/zh-CN/skills/claude-code/release-standards/semantic-versioning.md +250 -0
  177. package/bundled/locales/zh-CN/skills/claude-code/requirement-assistant/SKILL.md +227 -0
  178. package/bundled/locales/zh-CN/skills/claude-code/requirement-assistant/requirement-checklist.md +325 -0
  179. package/bundled/locales/zh-CN/skills/claude-code/requirement-assistant/requirement-writing.md +399 -0
  180. package/bundled/locales/zh-CN/skills/claude-code/spec-driven-dev/SKILL.md +243 -0
  181. package/bundled/locales/zh-CN/skills/claude-code/tdd-assistant/SKILL.md +332 -0
  182. package/bundled/locales/zh-CN/skills/claude-code/tdd-assistant/language-examples.md +639 -0
  183. package/bundled/locales/zh-CN/skills/claude-code/tdd-assistant/tdd-workflow.md +486 -0
  184. package/bundled/locales/zh-CN/skills/claude-code/test-coverage-assistant/SKILL.md +282 -0
  185. package/bundled/locales/zh-CN/skills/claude-code/testing-guide/SKILL.md +234 -0
  186. package/bundled/locales/zh-CN/skills/claude-code/testing-guide/testing-pyramid.md +448 -0
  187. package/bundled/locales/zh-CN/skills/cline/README.md +58 -0
  188. package/bundled/locales/zh-CN/skills/copilot/README.md +61 -0
  189. package/bundled/locales/zh-CN/skills/copilot/copilot-instructions.md +79 -0
  190. package/bundled/locales/zh-CN/skills/cursor/README.md +58 -0
  191. package/bundled/locales/zh-CN/skills/windsurf/README.md +59 -0
  192. package/bundled/locales/zh-TW/CHANGELOG.md +707 -0
  193. package/bundled/locales/zh-TW/CLAUDE.md +213 -0
  194. package/bundled/locales/zh-TW/MAINTENANCE.md +683 -0
  195. package/bundled/locales/zh-TW/README.md +687 -0
  196. package/bundled/locales/zh-TW/STANDARDS-MAPPING.md +177 -0
  197. package/bundled/locales/zh-TW/adoption/ADOPTION-GUIDE.md +392 -0
  198. package/bundled/locales/zh-TW/adoption/STATIC-DYNAMIC-GUIDE.md +299 -0
  199. package/bundled/locales/zh-TW/adoption/checklists/enterprise.md +332 -0
  200. package/bundled/locales/zh-TW/adoption/checklists/minimal.md +141 -0
  201. package/bundled/locales/zh-TW/adoption/checklists/recommended.md +272 -0
  202. package/bundled/locales/zh-TW/ai/MAINTENANCE.md +754 -0
  203. package/bundled/locales/zh-TW/ai/options/changelog/auto-generated.ai.yaml +76 -0
  204. package/bundled/locales/zh-TW/ai/options/changelog/keep-a-changelog.ai.yaml +99 -0
  205. package/bundled/locales/zh-TW/ai/options/code-review/automated-review.ai.yaml +120 -0
  206. package/bundled/locales/zh-TW/ai/options/code-review/pair-programming.ai.yaml +109 -0
  207. package/bundled/locales/zh-TW/ai/options/code-review/pr-review.ai.yaml +104 -0
  208. package/bundled/locales/zh-TW/ai/options/commit-message/bilingual.ai.yaml +105 -0
  209. package/bundled/locales/zh-TW/ai/options/commit-message/english.ai.yaml +79 -0
  210. package/bundled/locales/zh-TW/ai/options/commit-message/traditional-chinese.ai.yaml +100 -0
  211. package/bundled/locales/zh-TW/ai/options/documentation/api-docs.ai.yaml +140 -0
  212. package/bundled/locales/zh-TW/ai/options/documentation/markdown-docs.ai.yaml +89 -0
  213. package/bundled/locales/zh-TW/ai/options/documentation/wiki-style.ai.yaml +119 -0
  214. package/bundled/locales/zh-TW/ai/options/git-workflow/gitflow.ai.yaml +133 -0
  215. package/bundled/locales/zh-TW/ai/options/git-workflow/github-flow.ai.yaml +73 -0
  216. package/bundled/locales/zh-TW/ai/options/git-workflow/merge-commit.ai.yaml +88 -0
  217. package/bundled/locales/zh-TW/ai/options/git-workflow/rebase-ff.ai.yaml +113 -0
  218. package/bundled/locales/zh-TW/ai/options/git-workflow/squash-merge.ai.yaml +85 -0
  219. package/bundled/locales/zh-TW/ai/options/git-workflow/trunk-based.ai.yaml +117 -0
  220. package/bundled/locales/zh-TW/ai/options/project-structure/dotnet.ai.yaml +108 -0
  221. package/bundled/locales/zh-TW/ai/options/project-structure/go.ai.yaml +115 -0
  222. package/bundled/locales/zh-TW/ai/options/project-structure/java.ai.yaml +113 -0
  223. package/bundled/locales/zh-TW/ai/options/project-structure/kotlin.ai.yaml +123 -0
  224. package/bundled/locales/zh-TW/ai/options/project-structure/nodejs.ai.yaml +101 -0
  225. package/bundled/locales/zh-TW/ai/options/project-structure/php.ai.yaml +147 -0
  226. package/bundled/locales/zh-TW/ai/options/project-structure/python.ai.yaml +116 -0
  227. package/bundled/locales/zh-TW/ai/options/project-structure/ruby.ai.yaml +140 -0
  228. package/bundled/locales/zh-TW/ai/options/project-structure/rust.ai.yaml +117 -0
  229. package/bundled/locales/zh-TW/ai/options/project-structure/swift.ai.yaml +143 -0
  230. package/bundled/locales/zh-TW/ai/options/testing/contract-testing.ai.yaml +254 -0
  231. package/bundled/locales/zh-TW/ai/options/testing/e2e-testing.ai.yaml +116 -0
  232. package/bundled/locales/zh-TW/ai/options/testing/industry-pyramid.ai.yaml +144 -0
  233. package/bundled/locales/zh-TW/ai/options/testing/integration-testing.ai.yaml +90 -0
  234. package/bundled/locales/zh-TW/ai/options/testing/istqb-framework.ai.yaml +108 -0
  235. package/bundled/locales/zh-TW/ai/options/testing/performance-testing.ai.yaml +272 -0
  236. package/bundled/locales/zh-TW/ai/options/testing/security-testing.ai.yaml +160 -0
  237. package/bundled/locales/zh-TW/ai/options/testing/system-testing.ai.yaml +101 -0
  238. package/bundled/locales/zh-TW/ai/options/testing/unit-testing.ai.yaml +82 -0
  239. package/bundled/locales/zh-TW/ai/standards/anti-hallucination.ai.yaml +145 -0
  240. package/bundled/locales/zh-TW/ai/standards/changelog.ai.yaml +146 -0
  241. package/bundled/locales/zh-TW/ai/standards/checkin-standards.ai.yaml +170 -0
  242. package/bundled/locales/zh-TW/ai/standards/code-review.ai.yaml +148 -0
  243. package/bundled/locales/zh-TW/ai/standards/commit-message.ai.yaml +175 -0
  244. package/bundled/locales/zh-TW/ai/standards/documentation-structure.ai.yaml +124 -0
  245. package/bundled/locales/zh-TW/ai/standards/documentation-writing-standards.ai.yaml +190 -0
  246. package/bundled/locales/zh-TW/ai/standards/error-codes.ai.yaml +139 -0
  247. package/bundled/locales/zh-TW/ai/standards/git-workflow.ai.yaml +95 -0
  248. package/bundled/locales/zh-TW/ai/standards/logging.ai.yaml +128 -0
  249. package/bundled/locales/zh-TW/ai/standards/project-structure.ai.yaml +134 -0
  250. package/bundled/locales/zh-TW/ai/standards/spec-driven-development.ai.yaml +169 -0
  251. package/bundled/locales/zh-TW/ai/standards/test-completeness-dimensions.ai.yaml +220 -0
  252. package/bundled/locales/zh-TW/ai/standards/testing.ai.yaml +137 -0
  253. package/bundled/locales/zh-TW/ai/standards/versioning.ai.yaml +211 -0
  254. package/bundled/locales/zh-TW/core/ai-instruction-standards.md +213 -0
  255. package/bundled/locales/zh-TW/core/anti-hallucination.md +691 -0
  256. package/bundled/locales/zh-TW/core/changelog-standards.md +564 -0
  257. package/bundled/locales/zh-TW/core/checkin-standards.md +943 -0
  258. package/bundled/locales/zh-TW/core/code-review-checklist.md +693 -0
  259. package/bundled/locales/zh-TW/core/commit-message-guide.md +809 -0
  260. package/bundled/locales/zh-TW/core/documentation-structure.md +1125 -0
  261. package/bundled/locales/zh-TW/core/documentation-writing-standards.md +495 -0
  262. package/bundled/locales/zh-TW/core/error-code-standards.md +384 -0
  263. package/bundled/locales/zh-TW/core/git-workflow.md +860 -0
  264. package/bundled/locales/zh-TW/core/logging-standards.md +325 -0
  265. package/bundled/locales/zh-TW/core/project-structure.md +362 -0
  266. package/bundled/locales/zh-TW/core/refactoring-standards.md +642 -0
  267. package/bundled/locales/zh-TW/core/spec-driven-development.md +215 -0
  268. package/bundled/locales/zh-TW/core/test-completeness-dimensions.md +544 -0
  269. package/bundled/locales/zh-TW/core/test-driven-development.md +1004 -0
  270. package/bundled/locales/zh-TW/core/testing-standards.md +2158 -0
  271. package/bundled/locales/zh-TW/core/versioning.md +909 -0
  272. package/bundled/locales/zh-TW/docs/AI-AGENT-ROADMAP.md +303 -0
  273. package/bundled/locales/zh-TW/docs/CLI-INIT-OPTIONS.md +990 -0
  274. package/bundled/locales/zh-TW/docs/OPERATION-WORKFLOW.md +1064 -0
  275. package/bundled/locales/zh-TW/docs/USAGE-MODES-COMPARISON.md +333 -0
  276. package/bundled/locales/zh-TW/docs/WINDOWS-GUIDE.md +215 -0
  277. package/bundled/locales/zh-TW/integrations/codex/AGENTS.md +115 -0
  278. package/bundled/locales/zh-TW/integrations/codex/README.md +113 -0
  279. package/bundled/locales/zh-TW/integrations/gemini-cli/GEMINI.md +102 -0
  280. package/bundled/locales/zh-TW/integrations/gemini-cli/README.md +140 -0
  281. package/bundled/locales/zh-TW/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +269 -0
  282. package/bundled/locales/zh-TW/integrations/github-copilot/README.md +167 -0
  283. package/bundled/locales/zh-TW/integrations/github-copilot/copilot-instructions.md +263 -0
  284. package/bundled/locales/zh-TW/integrations/github-copilot/skills-mapping.md +192 -0
  285. package/bundled/locales/zh-TW/integrations/google-antigravity/INSTRUCTIONS.md +61 -0
  286. package/bundled/locales/zh-TW/integrations/google-antigravity/README.md +84 -0
  287. package/bundled/locales/zh-TW/integrations/opencode/AGENTS.md +111 -0
  288. package/bundled/locales/zh-TW/integrations/opencode/README.md +176 -0
  289. package/bundled/locales/zh-TW/integrations/opencode/skills-mapping.md +396 -0
  290. package/bundled/locales/zh-TW/integrations/openspec/AGENTS.md +301 -0
  291. package/bundled/locales/zh-TW/integrations/openspec/README.md +43 -0
  292. package/bundled/locales/zh-TW/integrations/spec-kit/AGENTS.md +184 -0
  293. package/bundled/locales/zh-TW/integrations/spec-kit/README.md +43 -0
  294. package/bundled/locales/zh-TW/options/commit-message/bilingual.md +161 -0
  295. package/bundled/locales/zh-TW/options/commit-message/english.md +137 -0
  296. package/bundled/locales/zh-TW/options/commit-message/traditional-chinese.md +162 -0
  297. package/bundled/locales/zh-TW/options/git-workflow/gitflow.md +147 -0
  298. package/bundled/locales/zh-TW/options/git-workflow/github-flow.md +124 -0
  299. package/bundled/locales/zh-TW/options/git-workflow/merge-commit.md +124 -0
  300. package/bundled/locales/zh-TW/options/git-workflow/rebase-ff.md +160 -0
  301. package/bundled/locales/zh-TW/options/git-workflow/squash-merge.md +117 -0
  302. package/bundled/locales/zh-TW/options/git-workflow/trunk-based.md +125 -0
  303. package/bundled/locales/zh-TW/options/project-structure/dotnet.md +183 -0
  304. package/bundled/locales/zh-TW/options/project-structure/go.md +226 -0
  305. package/bundled/locales/zh-TW/options/project-structure/java.md +213 -0
  306. package/bundled/locales/zh-TW/options/project-structure/nodejs.md +185 -0
  307. package/bundled/locales/zh-TW/options/project-structure/python.md +229 -0
  308. package/bundled/locales/zh-TW/options/testing/e2e-testing.md +207 -0
  309. package/bundled/locales/zh-TW/options/testing/integration-testing.md +230 -0
  310. package/bundled/locales/zh-TW/options/testing/system-testing.md +183 -0
  311. package/bundled/locales/zh-TW/options/testing/unit-testing.md +165 -0
  312. package/bundled/locales/zh-TW/skills/INTEGRATION-GUIDE.md +218 -0
  313. package/bundled/locales/zh-TW/skills/README.md +132 -0
  314. package/bundled/locales/zh-TW/skills/_shared/README.md +68 -0
  315. package/bundled/locales/zh-TW/skills/claude-code/CONTRIBUTING.template.md +151 -0
  316. package/bundled/locales/zh-TW/skills/claude-code/README.md +174 -0
  317. package/bundled/locales/zh-TW/skills/claude-code/ai-collaboration-standards/SKILL.md +175 -0
  318. package/bundled/locales/zh-TW/skills/claude-code/ai-collaboration-standards/anti-hallucination.md +223 -0
  319. package/bundled/locales/zh-TW/skills/claude-code/ai-collaboration-standards/certainty-labels.md +132 -0
  320. package/bundled/locales/zh-TW/skills/claude-code/changelog-guide/SKILL.md +237 -0
  321. package/bundled/locales/zh-TW/skills/claude-code/checkin-assistant/SKILL.md +407 -0
  322. package/bundled/locales/zh-TW/skills/claude-code/code-review-assistant/SKILL.md +154 -0
  323. package/bundled/locales/zh-TW/skills/claude-code/code-review-assistant/checkin-checklist.md +257 -0
  324. package/bundled/locales/zh-TW/skills/claude-code/code-review-assistant/review-checklist.md +246 -0
  325. package/bundled/locales/zh-TW/skills/claude-code/commands/bdd.md +142 -0
  326. package/bundled/locales/zh-TW/skills/claude-code/commands/methodology.md +274 -0
  327. package/bundled/locales/zh-TW/skills/claude-code/commit-standards/SKILL.md +191 -0
  328. package/bundled/locales/zh-TW/skills/claude-code/commit-standards/conventional-commits.md +264 -0
  329. package/bundled/locales/zh-TW/skills/claude-code/commit-standards/language-options.md +172 -0
  330. package/bundled/locales/zh-TW/skills/claude-code/documentation-guide/SKILL.md +421 -0
  331. package/bundled/locales/zh-TW/skills/claude-code/documentation-guide/documentation-structure.md +357 -0
  332. package/bundled/locales/zh-TW/skills/claude-code/documentation-guide/readme-template.md +412 -0
  333. package/bundled/locales/zh-TW/skills/claude-code/error-code-guide/SKILL.md +269 -0
  334. package/bundled/locales/zh-TW/skills/claude-code/git-workflow-guide/SKILL.md +218 -0
  335. package/bundled/locales/zh-TW/skills/claude-code/git-workflow-guide/branch-naming.md +220 -0
  336. package/bundled/locales/zh-TW/skills/claude-code/git-workflow-guide/git-workflow.md +321 -0
  337. package/bundled/locales/zh-TW/skills/claude-code/logging-guide/SKILL.md +285 -0
  338. package/bundled/locales/zh-TW/skills/claude-code/methodology-system/SKILL.md +131 -0
  339. package/bundled/locales/zh-TW/skills/claude-code/methodology-system/create-methodology.md +350 -0
  340. package/bundled/locales/zh-TW/skills/claude-code/methodology-system/runtime.md +279 -0
  341. package/bundled/locales/zh-TW/skills/claude-code/project-structure-guide/SKILL.md +143 -0
  342. package/bundled/locales/zh-TW/skills/claude-code/project-structure-guide/language-patterns.md +271 -0
  343. package/bundled/locales/zh-TW/skills/claude-code/refactoring-assistant/SKILL.md +162 -0
  344. package/bundled/locales/zh-TW/skills/claude-code/release-standards/SKILL.md +191 -0
  345. package/bundled/locales/zh-TW/skills/claude-code/release-standards/changelog-format.md +247 -0
  346. package/bundled/locales/zh-TW/skills/claude-code/release-standards/release-workflow.md +345 -0
  347. package/bundled/locales/zh-TW/skills/claude-code/release-standards/semantic-versioning.md +250 -0
  348. package/bundled/locales/zh-TW/skills/claude-code/requirement-assistant/SKILL.md +227 -0
  349. package/bundled/locales/zh-TW/skills/claude-code/requirement-assistant/requirement-checklist.md +325 -0
  350. package/bundled/locales/zh-TW/skills/claude-code/requirement-assistant/requirement-writing.md +399 -0
  351. package/bundled/locales/zh-TW/skills/claude-code/spec-driven-dev/SKILL.md +243 -0
  352. package/bundled/locales/zh-TW/skills/claude-code/tdd-assistant/SKILL.md +332 -0
  353. package/bundled/locales/zh-TW/skills/claude-code/tdd-assistant/language-examples.md +639 -0
  354. package/bundled/locales/zh-TW/skills/claude-code/tdd-assistant/tdd-workflow.md +486 -0
  355. package/bundled/locales/zh-TW/skills/claude-code/test-coverage-assistant/SKILL.md +282 -0
  356. package/bundled/locales/zh-TW/skills/claude-code/testing-guide/SKILL.md +234 -0
  357. package/bundled/locales/zh-TW/skills/claude-code/testing-guide/testing-pyramid.md +448 -0
  358. package/bundled/locales/zh-TW/skills/cline/README.md +58 -0
  359. package/bundled/locales/zh-TW/skills/copilot/README.md +61 -0
  360. package/bundled/locales/zh-TW/skills/copilot/copilot-instructions.md +79 -0
  361. package/bundled/locales/zh-TW/skills/cursor/README.md +58 -0
  362. package/bundled/locales/zh-TW/skills/windsurf/README.md +59 -0
  363. package/bundled/skills/claude-code/CONTRIBUTING.template.md +141 -0
  364. package/bundled/skills/claude-code/README.md +196 -0
  365. package/bundled/skills/claude-code/ai/standards/checkin.ai.yaml +21 -0
  366. package/bundled/skills/claude-code/ai/standards/commit.ai.yaml +20 -0
  367. package/bundled/skills/claude-code/ai/standards/refactoring.ai.yaml +34 -0
  368. package/bundled/skills/claude-code/ai/standards/testing.ai.yaml +41 -0
  369. package/bundled/skills/claude-code/ai-collaboration-standards/SKILL.md +175 -0
  370. package/bundled/skills/claude-code/ai-collaboration-standards/anti-hallucination.md +215 -0
  371. package/bundled/skills/claude-code/ai-collaboration-standards/certainty-labels.md +124 -0
  372. package/bundled/skills/claude-code/changelog-guide/SKILL.md +232 -0
  373. package/bundled/skills/claude-code/checkin-assistant/SKILL.md +402 -0
  374. package/bundled/skills/claude-code/code-review-assistant/SKILL.md +220 -0
  375. package/bundled/skills/claude-code/code-review-assistant/checkin-checklist.md +249 -0
  376. package/bundled/skills/claude-code/code-review-assistant/review-checklist.md +238 -0
  377. package/bundled/skills/claude-code/commands/README.md +78 -0
  378. package/bundled/skills/claude-code/commands/bdd.md +142 -0
  379. package/bundled/skills/claude-code/commands/changelog.md +57 -0
  380. package/bundled/skills/claude-code/commands/check.md +91 -0
  381. package/bundled/skills/claude-code/commands/commit.md +48 -0
  382. package/bundled/skills/claude-code/commands/config.md +97 -0
  383. package/bundled/skills/claude-code/commands/coverage.md +58 -0
  384. package/bundled/skills/claude-code/commands/docs.md +75 -0
  385. package/bundled/skills/claude-code/commands/init.md +88 -0
  386. package/bundled/skills/claude-code/commands/methodology.md +268 -0
  387. package/bundled/skills/claude-code/commands/release.md +50 -0
  388. package/bundled/skills/claude-code/commands/requirement.md +54 -0
  389. package/bundled/skills/claude-code/commands/review.md +50 -0
  390. package/bundled/skills/claude-code/commands/spec.md +69 -0
  391. package/bundled/skills/claude-code/commands/tdd.md +86 -0
  392. package/bundled/skills/claude-code/commands/update.md +122 -0
  393. package/bundled/skills/claude-code/commit-standards/SKILL.md +249 -0
  394. package/bundled/skills/claude-code/commit-standards/conventional-commits.md +256 -0
  395. package/bundled/skills/claude-code/commit-standards/language-options.md +164 -0
  396. package/bundled/skills/claude-code/documentation-guide/SKILL.md +416 -0
  397. package/bundled/skills/claude-code/documentation-guide/documentation-structure.md +349 -0
  398. package/bundled/skills/claude-code/documentation-guide/readme-template.md +404 -0
  399. package/bundled/skills/claude-code/error-code-guide/SKILL.md +264 -0
  400. package/bundled/skills/claude-code/git-workflow-guide/SKILL.md +226 -0
  401. package/bundled/skills/claude-code/git-workflow-guide/branch-naming.md +212 -0
  402. package/bundled/skills/claude-code/git-workflow-guide/git-workflow.md +313 -0
  403. package/bundled/skills/claude-code/logging-guide/SKILL.md +280 -0
  404. package/bundled/skills/claude-code/methodology-system/SKILL.md +215 -0
  405. package/bundled/skills/claude-code/methodology-system/create-methodology.md +450 -0
  406. package/bundled/skills/claude-code/methodology-system/runtime.md +271 -0
  407. package/bundled/skills/claude-code/project-structure-guide/SKILL.md +143 -0
  408. package/bundled/skills/claude-code/project-structure-guide/language-patterns.md +263 -0
  409. package/bundled/skills/claude-code/refactoring-assistant/SKILL.md +205 -0
  410. package/bundled/skills/claude-code/release-standards/SKILL.md +191 -0
  411. package/bundled/skills/claude-code/release-standards/changelog-format.md +239 -0
  412. package/bundled/skills/claude-code/release-standards/release-workflow.md +337 -0
  413. package/bundled/skills/claude-code/release-standards/semantic-versioning.md +242 -0
  414. package/bundled/skills/claude-code/requirement-assistant/SKILL.md +222 -0
  415. package/bundled/skills/claude-code/requirement-assistant/requirement-checklist.md +317 -0
  416. package/bundled/skills/claude-code/requirement-assistant/requirement-writing.md +391 -0
  417. package/bundled/skills/claude-code/spec-driven-dev/SKILL.md +238 -0
  418. package/bundled/skills/claude-code/tdd-assistant/SKILL.md +384 -0
  419. package/bundled/skills/claude-code/tdd-assistant/language-examples.md +1276 -0
  420. package/bundled/skills/claude-code/tdd-assistant/tdd-workflow.md +659 -0
  421. package/bundled/skills/claude-code/test-coverage-assistant/SKILL.md +277 -0
  422. package/bundled/skills/claude-code/testing-guide/SKILL.md +317 -0
  423. package/bundled/skills/claude-code/testing-guide/testing-pyramid.md +440 -0
  424. package/package.json +4 -2
  425. package/src/commands/check.js +38 -6
  426. package/src/commands/init.js +20 -6
  427. package/src/commands/list.js +7 -2
  428. package/src/commands/skills.js +0 -2
  429. package/src/commands/update.js +271 -0
  430. package/src/i18n/messages.js +161 -11
  431. package/src/utils/copier.js +63 -10
  432. package/src/utils/skills-installer.js +47 -11
  433. package/standards-registry.json +6 -3
@@ -0,0 +1,639 @@
1
+ ---
2
+ source: ../../../../../skills/claude-code/tdd-assistant/language-examples.md
3
+ source_version: 1.0.0
4
+ translation_version: 1.0.0
5
+ last_synced: 2026-01-07
6
+ status: current
7
+ ---
8
+
9
+ # TDD 语言範例
10
+
11
+ > **语言**: [English](../../../../../skills/claude-code/tdd-assistant/language-examples.md) | 简体中文
12
+
13
+ **版本**: 1.0.0
14
+ **最後更新**: 2026-01-07
15
+
16
+ ---
17
+
18
+ ## 概覽
19
+
20
+ 本文件提供六种主流程序语言的完整 TDD 範例:
21
+
22
+ 1. [JavaScript/TypeScript](#javascripttypescript)
23
+ 2. [Python](#python)
24
+ 3. [C#](#c)
25
+ 4. [Go](#go)
26
+ 5. [Java](#java)
27
+ 6. [Ruby](#ruby)
28
+
29
+ 每个區段包含:
30
+ - 完整的紅-綠-重構範例
31
+ - 测试框架设置
32
+ - Mock/Stub 使用
33
+ - BDD 範例(如適用)
34
+
35
+ ---
36
+
37
+ ## JavaScript/TypeScript
38
+
39
+ ### 测试框架:Jest/Vitest
40
+
41
+ #### 设置
42
+
43
+ ```bash
44
+ # Jest
45
+ npm install --save-dev jest @types/jest ts-jest
46
+
47
+ # Vitest
48
+ npm install --save-dev vitest
49
+ ```
50
+
51
+ #### 完整 TDD 範例:購物車
52
+
53
+ **步骤 1:紅色 - 撰写失败测试**
54
+
55
+ ```typescript
56
+ // cart.test.ts
57
+ import { ShoppingCart } from './cart';
58
+
59
+ describe('ShoppingCart', () => {
60
+ describe('calculateTotal', () => {
61
+ test('should return 0 for empty cart', () => {
62
+ // Arrange(准备)
63
+ const cart = new ShoppingCart();
64
+
65
+ // Act(执行)
66
+ const total = cart.calculateTotal();
67
+
68
+ // Assert(斷言)
69
+ expect(total).toBe(0);
70
+ });
71
+ });
72
+ });
73
+ ```
74
+
75
+ 执行测试 - 它失败因为 `ShoppingCart` 不存在。
76
+
77
+ **步骤 2:綠色 - 最少实現**
78
+
79
+ ```typescript
80
+ // cart.ts
81
+ export class ShoppingCart {
82
+ calculateTotal(): number {
83
+ return 0; // 假裝!
84
+ }
85
+ }
86
+ ```
87
+
88
+ 测试通過。
89
+
90
+ **步骤 3:紅色 - 新增下一个测试**
91
+
92
+ ```typescript
93
+ test('should return sum of item prices', () => {
94
+ const cart = new ShoppingCart();
95
+ cart.addItem({ name: 'Widget', price: 10 });
96
+ cart.addItem({ name: 'Gadget', price: 20 });
97
+
98
+ const total = cart.calculateTotal();
99
+
100
+ expect(total).toBe(30);
101
+ });
102
+ ```
103
+
104
+ **步骤 4:綠色 - 实現**
105
+
106
+ ```typescript
107
+ export class ShoppingCart {
108
+ private items: { name: string; price: number }[] = [];
109
+
110
+ addItem(item: { name: string; price: number }): void {
111
+ this.items.push(item);
112
+ }
113
+
114
+ calculateTotal(): number {
115
+ return this.items.reduce((sum, item) => sum + item.price, 0);
116
+ }
117
+ }
118
+ ```
119
+
120
+ #### Mock 範例
121
+
122
+ ```typescript
123
+ // orderService.test.ts
124
+ import { OrderService } from './orderService';
125
+ import { PaymentGateway } from './paymentGateway';
126
+
127
+ jest.mock('./paymentGateway');
128
+
129
+ describe('OrderService', () => {
130
+ test('should process payment and return order confirmation', async () => {
131
+ // Arrange
132
+ const mockPaymentGateway = new PaymentGateway() as jest.Mocked<PaymentGateway>;
133
+ mockPaymentGateway.charge.mockResolvedValue({
134
+ success: true,
135
+ transactionId: 'TXN123'
136
+ });
137
+
138
+ const orderService = new OrderService(mockPaymentGateway);
139
+
140
+ // Act
141
+ const result = await orderService.checkout({
142
+ amount: 100,
143
+ cardNumber: '4111111111111111'
144
+ });
145
+
146
+ // Assert
147
+ expect(result.confirmed).toBe(true);
148
+ expect(mockPaymentGateway.charge).toHaveBeenCalledWith(100, '4111111111111111');
149
+ });
150
+ });
151
+ ```
152
+
153
+ ---
154
+
155
+ ## Python
156
+
157
+ ### 测试框架:pytest
158
+
159
+ #### 设置
160
+
161
+ ```bash
162
+ pip install pytest pytest-cov pytest-mock
163
+ ```
164
+
165
+ #### 完整 TDD 範例:计算机
166
+
167
+ **步骤 1:紅色**
168
+
169
+ ```python
170
+ # tests/test_calculator.py
171
+ import pytest
172
+ from calculator import Calculator
173
+
174
+ class TestCalculator:
175
+ def test_add_two_positive_numbers(self):
176
+ # Arrange(准备)
177
+ calc = Calculator()
178
+
179
+ # Act(执行)
180
+ result = calc.add(2, 3)
181
+
182
+ # Assert(斷言)
183
+ assert result == 5
184
+ ```
185
+
186
+ **步骤 2:綠色**
187
+
188
+ ```python
189
+ # calculator.py
190
+ class Calculator:
191
+ def add(self, a: float, b: float) -> float:
192
+ return 5 # 假裝!
193
+ ```
194
+
195
+ **步骤 3:紅色 - 強制泛化**
196
+
197
+ ```python
198
+ def test_add_different_numbers(self):
199
+ calc = Calculator()
200
+ result = calc.add(10, 20)
201
+ assert result == 30
202
+ ```
203
+
204
+ **步骤 4:綠色 - 实現**
205
+
206
+ ```python
207
+ class Calculator:
208
+ def add(self, a: float, b: float) -> float:
209
+ return a + b
210
+ ```
211
+
212
+ #### Mock 範例
213
+
214
+ ```python
215
+ # tests/test_user_service.py
216
+ from unittest.mock import Mock, patch
217
+ from user_service import UserService
218
+
219
+ class TestUserService:
220
+ @patch('user_service.EmailClient')
221
+ def test_register_user_sends_welcome_email(self, mock_email_client):
222
+ # Arrange
223
+ mock_client = Mock()
224
+ mock_email_client.return_value = mock_client
225
+ service = UserService()
226
+
227
+ # Act
228
+ service.register_user("john@example.com", "John")
229
+
230
+ # Assert
231
+ mock_client.send.assert_called_once_with(
232
+ to="john@example.com",
233
+ subject="Welcome!",
234
+ body="Hello John, welcome to our service!"
235
+ )
236
+ ```
237
+
238
+ ---
239
+
240
+ ## C#
241
+
242
+ ### 测试框架:xUnit
243
+
244
+ #### 设置
245
+
246
+ ```bash
247
+ dotnet add package xunit
248
+ dotnet add package xunit.runner.visualstudio
249
+ dotnet add package Moq
250
+ dotnet add package FluentAssertions
251
+ ```
252
+
253
+ #### 完整 TDD 範例:订单处理器
254
+
255
+ **步骤 1:紅色**
256
+
257
+ ```csharp
258
+ // OrderProcessorTests.cs
259
+ using Xunit;
260
+ using FluentAssertions;
261
+
262
+ public class OrderProcessorTests
263
+ {
264
+ [Fact]
265
+ public void ProcessOrder_WithValidOrder_ReturnsSuccess()
266
+ {
267
+ // Arrange(准备)
268
+ var processor = new OrderProcessor();
269
+ var order = new Order { Id = 1, Amount = 100 };
270
+
271
+ // Act(执行)
272
+ var result = processor.Process(order);
273
+
274
+ // Assert(斷言)
275
+ result.IsSuccess.Should().BeTrue();
276
+ }
277
+ }
278
+ ```
279
+
280
+ **步骤 2:綠色**
281
+
282
+ ```csharp
283
+ // OrderProcessor.cs
284
+ public class OrderProcessor
285
+ {
286
+ public ProcessResult Process(Order order)
287
+ {
288
+ return new ProcessResult { IsSuccess = true }; // 假裝!
289
+ }
290
+ }
291
+ ```
292
+
293
+ #### Moq 範例
294
+
295
+ ```csharp
296
+ using Moq;
297
+
298
+ public class PaymentServiceTests
299
+ {
300
+ [Fact]
301
+ public async Task ProcessPayment_WithValidCard_ChargesAndSendsReceipt()
302
+ {
303
+ // Arrange
304
+ var mockGateway = new Mock<IPaymentGateway>();
305
+ mockGateway
306
+ .Setup(g => g.ChargeAsync(It.IsAny<decimal>(), It.IsAny<string>()))
307
+ .ReturnsAsync(new ChargeResult { TransactionId = "TXN123" });
308
+
309
+ var service = new PaymentService(mockGateway.Object);
310
+
311
+ // Act
312
+ var result = await service.ProcessPaymentAsync(100, "4111111111111111");
313
+
314
+ // Assert
315
+ result.TransactionId.Should().Be("TXN123");
316
+ mockGateway.Verify(g => g.ChargeAsync(100, "4111111111111111"), Times.Once);
317
+ }
318
+ }
319
+ ```
320
+
321
+ ---
322
+
323
+ ## Go
324
+
325
+ ### 测试框架:testing + testify
326
+
327
+ #### 设置
328
+
329
+ ```bash
330
+ go get github.com/stretchr/testify
331
+ ```
332
+
333
+ #### 完整 TDD 範例:使用者储存庫
334
+
335
+ **步骤 1:紅色**
336
+
337
+ ```go
338
+ // user_repository_test.go
339
+ package repository
340
+
341
+ import (
342
+ "testing"
343
+ "github.com/stretchr/testify/assert"
344
+ )
345
+
346
+ func TestUserRepository_FindById_ReturnsUser(t *testing.T) {
347
+ // Arrange(准备)
348
+ repo := NewUserRepository()
349
+ repo.Save(&User{ID: 1, Name: "John"})
350
+
351
+ // Act(执行)
352
+ user, err := repo.FindById(1)
353
+
354
+ // Assert(斷言)
355
+ assert.NoError(t, err)
356
+ assert.Equal(t, "John", user.Name)
357
+ }
358
+ ```
359
+
360
+ **步骤 2:綠色**
361
+
362
+ ```go
363
+ // user_repository.go
364
+ package repository
365
+
366
+ type UserRepository struct {
367
+ users map[int]*User
368
+ }
369
+
370
+ func NewUserRepository() *UserRepository {
371
+ return &UserRepository{users: make(map[int]*User)}
372
+ }
373
+
374
+ func (r *UserRepository) Save(user *User) {
375
+ r.users[user.ID] = user
376
+ }
377
+
378
+ func (r *UserRepository) FindById(id int) (*User, error) {
379
+ user, exists := r.users[id]
380
+ if !exists {
381
+ return nil, errors.New("user not found")
382
+ }
383
+ return user, nil
384
+ }
385
+ ```
386
+
387
+ #### 表格驅动测试(Go 慣例)
388
+
389
+ ```go
390
+ func TestUserRepository_Save(t *testing.T) {
391
+ tests := []struct {
392
+ name string
393
+ user *User
394
+ expected int
395
+ }{
396
+ {
397
+ name: "save single user",
398
+ user: &User{ID: 1, Name: "Alice"},
399
+ expected: 1,
400
+ },
401
+ {
402
+ name: "save user with different ID",
403
+ user: &User{ID: 2, Name: "Bob"},
404
+ expected: 2,
405
+ },
406
+ }
407
+
408
+ for _, tt := range tests {
409
+ t.Run(tt.name, func(t *testing.T) {
410
+ repo := NewUserRepository()
411
+ repo.Save(tt.user)
412
+
413
+ found, err := repo.FindById(tt.expected)
414
+
415
+ assert.NoError(t, err)
416
+ assert.Equal(t, tt.user.Name, found.Name)
417
+ })
418
+ }
419
+ }
420
+ ```
421
+
422
+ ---
423
+
424
+ ## Java
425
+
426
+ ### 测试框架:JUnit 5 + Mockito
427
+
428
+ #### 设置 (Maven)
429
+
430
+ ```xml
431
+ <dependencies>
432
+ <dependency>
433
+ <groupId>org.junit.jupiter</groupId>
434
+ <artifactId>junit-jupiter</artifactId>
435
+ <version>5.10.0</version>
436
+ <scope>test</scope>
437
+ </dependency>
438
+ <dependency>
439
+ <groupId>org.mockito</groupId>
440
+ <artifactId>mockito-core</artifactId>
441
+ <version>5.5.0</version>
442
+ <scope>test</scope>
443
+ </dependency>
444
+ </dependencies>
445
+ ```
446
+
447
+ #### 完整 TDD 範例:帳戶服务
448
+
449
+ **步骤 1:紅色**
450
+
451
+ ```java
452
+ // AccountServiceTest.java
453
+ import org.junit.jupiter.api.Test;
454
+ import static org.assertj.core.api.Assertions.*;
455
+
456
+ class AccountServiceTest {
457
+
458
+ @Test
459
+ void deposit_withPositiveAmount_increasesBalance() {
460
+ // Arrange(准备)
461
+ AccountService service = new AccountService();
462
+ Account account = new Account(100.0);
463
+
464
+ // Act(执行)
465
+ service.deposit(account, 50.0);
466
+
467
+ // Assert(斷言)
468
+ assertThat(account.getBalance()).isEqualTo(150.0);
469
+ }
470
+ }
471
+ ```
472
+
473
+ **步骤 2:綠色**
474
+
475
+ ```java
476
+ // AccountService.java
477
+ public class AccountService {
478
+ public void deposit(Account account, double amount) {
479
+ account.setBalance(account.getBalance() + amount);
480
+ }
481
+ }
482
+ ```
483
+
484
+ #### Mockito 範例
485
+
486
+ ```java
487
+ @ExtendWith(MockitoExtension.class)
488
+ class OrderServiceTest {
489
+
490
+ @Mock
491
+ private PaymentGateway paymentGateway;
492
+
493
+ @InjectMocks
494
+ private OrderService orderService;
495
+
496
+ @Test
497
+ void placeOrder_withValidOrder_processesPayment() {
498
+ // Arrange
499
+ Order order = new Order("PROD-1", 2, 50.0);
500
+ when(paymentGateway.charge(100.0))
501
+ .thenReturn(new PaymentResult("TXN-123", true));
502
+
503
+ // Act
504
+ OrderResult result = orderService.placeOrder(order);
505
+
506
+ // Assert
507
+ assertThat(result.isSuccess()).isTrue();
508
+ verify(paymentGateway).charge(100.0);
509
+ }
510
+ }
511
+ ```
512
+
513
+ ---
514
+
515
+ ## Ruby
516
+
517
+ ### 测试框架:RSpec
518
+
519
+ #### 设置
520
+
521
+ ```ruby
522
+ # Gemfile
523
+ group :test do
524
+ gem 'rspec', '~> 3.12'
525
+ gem 'rspec-mocks'
526
+ end
527
+ ```
528
+
529
+ #### 完整 TDD 範例:購物車
530
+
531
+ **步骤 1:紅色**
532
+
533
+ ```ruby
534
+ # spec/shopping_cart_spec.rb
535
+ require_relative '../lib/shopping_cart'
536
+
537
+ RSpec.describe ShoppingCart do
538
+ describe '#total' do
539
+ it 'returns 0 for empty cart' do
540
+ cart = ShoppingCart.new
541
+
542
+ expect(cart.total).to eq(0)
543
+ end
544
+ end
545
+ end
546
+ ```
547
+
548
+ **步骤 2:綠色**
549
+
550
+ ```ruby
551
+ # lib/shopping_cart.rb
552
+ class ShoppingCart
553
+ def total
554
+ 0 # 假裝!
555
+ end
556
+ end
557
+ ```
558
+
559
+ **步骤 3:紅色 - 新增商品**
560
+
561
+ ```ruby
562
+ it 'returns sum of item prices' do
563
+ cart = ShoppingCart.new
564
+ cart.add_item(name: 'Widget', price: 10)
565
+ cart.add_item(name: 'Gadget', price: 20)
566
+
567
+ expect(cart.total).to eq(30)
568
+ end
569
+ ```
570
+
571
+ **步骤 4:綠色与重構**
572
+
573
+ ```ruby
574
+ class ShoppingCart
575
+ def initialize
576
+ @items = []
577
+ end
578
+
579
+ def add_item(item)
580
+ @items << item
581
+ end
582
+
583
+ def total
584
+ @items.sum { |item| item[:price] }
585
+ end
586
+ end
587
+ ```
588
+
589
+ #### RSpec Mock 範例
590
+
591
+ ```ruby
592
+ RSpec.describe OrderService do
593
+ describe '#process' do
594
+ it 'charges payment and sends confirmation' do
595
+ # Arrange
596
+ payment_gateway = instance_double(PaymentGateway)
597
+ email_service = instance_double(EmailService)
598
+
599
+ allow(payment_gateway).to receive(:charge).and_return(
600
+ OpenStruct.new(success: true, transaction_id: 'TXN123')
601
+ )
602
+ allow(email_service).to receive(:send_confirmation)
603
+
604
+ service = OrderService.new(
605
+ payment_gateway: payment_gateway,
606
+ email_service: email_service
607
+ )
608
+
609
+ # Act
610
+ result = service.process(Order.new(amount: 100, email: 'user@example.com'))
611
+
612
+ # Assert
613
+ expect(result.success?).to be true
614
+ expect(payment_gateway).to have_received(:charge).with(100)
615
+ end
616
+ end
617
+ end
618
+ ```
619
+
620
+ ---
621
+
622
+ ## 框架比較摘要
623
+
624
+ | 语言 | 单元测试 | Mock | BDD | Watch 模式 |
625
+ |------|---------|------|-----|-----------|
626
+ | **JavaScript** | Jest/Vitest | jest.mock | Cucumber.js | `--watch` |
627
+ | **Python** | pytest | unittest.mock | Behave | pytest-watch |
628
+ | **C#** | xUnit/NUnit | Moq | SpecFlow | dotnet watch |
629
+ | **Go** | testing | testify/mock | godog | go test -v |
630
+ | **Java** | JUnit 5 | Mockito | Cucumber-JVM | Maven/Gradle |
631
+ | **Ruby** | RSpec | rspec-mocks | Cucumber/RSpec | guard |
632
+
633
+ ---
634
+
635
+ ## 相关文件
636
+
637
+ - [SKILL.md](./SKILL.md) - TDD 助手概覽
638
+ - [TDD 工作流程](./tdd-workflow.md) - 详细工作流程指南
639
+ - [TDD 核心标准](../../../../../core/test-driven-development.md) - 完整 TDD 标准