coder-system-design-testable-code
Testability-first design rules for modular, deterministic, and verifiable systems.
Installation
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
Voir la source ↗GuidesInstructions
<when_to_use> Designing modules, services, or boundaries that must stay easy to test Refactoring hard-to-test legacy code paths Establishing test strategy for new architecture components </when_to_use>
<input_requirements> Critical business paths and failure modes Current test stack and CI constraints External dependencies and integration boundaries Determinism risks (time, randomness, concurrency, network) </input_requirements>
<design_principles> Use dependency inversion and dependency injection for replaceable collaborators Create explicit seams at IO, time, random, and external service boundaries Favor deterministic execution in tests with controllable clocks and inputs Prefer many fast unit and component tests with targeted integration coverage Use contract tests for service boundaries to prevent integration drift Make failures diagnosable with structured test logs and trace correlation </design_principles>
<testability_checklist> Business logic can run without network or real infrastructure in core tests External calls are abstracted through interfaces/ports Tests do not depend on execution order or shared mutable state Flaky signals are tracked and have explicit remediation ownership Boundary contracts are validated in CI before deployment </testability_checklist>
<quality_rules> No critical change is complete without tests that prove behavior No unstable test should be silently ignored; quarantine requires owner and timeline No hidden dependency should bypass injection seam on critical path No long-running broad test should replace missing fast deterministic tests </quality_rules>
<do_not> Do not hardcode infrastructure clients in business logic Do not use sleep-based timing guesses when deterministic sync is possible Do not over-mock internals instead of validating behavior contracts Do not hide flaky failures by indiscriminate retries </do_not>
<output_requirements> Design boundaries and seams introduced or validated Test strategy per layer (unit/component/integration/contract) Determinism controls and flaky-risk mitigation Evidence from CI/local checks and remaining risks </output_requirements>
Exemples
Consultez les exemples du dépôt source.
Voir la source ↗Historique source
- Date d’indexation
- 2026-03-11
- Mise à jour de l’index
- 2026-03-11
- Branch
- main
Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!