Ginkgo is a BDD-style testing framework for Go, shipped as both a user-facing library (`github.com/onsi/ginkgo/v2`) and a companion CLI binary under `ginkgo/main.go`. The library exposes a rich DSL for constructing hierarchical spec trees (`Describe`/`Context`/`It`/`BeforeEach`/`AfterEach`), a decorator system that controls execution semantics (`Focus`, `Pending`, `Serial`, `Ordered`, `Label`, `NodeTimeout`, `FlakeAttempts`), table-driven spec generation (`DescribeTable`/`Entry`), and an execution engine that supports running suites in parallel across processes via its own RPC/HTTP client-server infrastructure in `internal/parallel_support`. Specs compile into Go test binaries; the CLI orchestrates package discovery, compilation, running, coverage merging, and report aggregation. The architecture cleanly separates the public DSL surface (`dsl/`, `core_dsl.go`) from the internal engine (`internal/suite.go`, `internal/group.go`, `internal/spec.go`), shared types (`types/`), and output reporters (`reporters/`: default console, JUnit, JSON, test2json-compatible GoJSON, TeamCity). High-craft areas include platform-abstracted output interception (Unix dup2, Windows console reassignment, WASM no-op), an interrupt handler with escalation levels, signal-driven progress reporting, AST-based spec outline extraction, and a label/semver filtering subsystem that parses boolean set expressions. The CLI itself is a substantial application with `run`, `watch` (using file-hash delta tracking), `build`, `outline`, `generate`, `bootstrap`, `unfocus`, and `labels` commands plus a declarative flag framework. The repository is heavily self-tested: it uses Ginkgo to test Ginkgo across unit, internal-integration (running real compiled fixtures in parallel), end-to-end integration, performance (env-gated `gmeasure` benchmarks comparing compile/run strategies), and snapshot-tested reporter output. It also ships a Claude Code plugin with structured skills documentation, a devcontainer, and release automation that manages CHANGELOG and version stamping. Maintenance is clearly active with frequent releases (v2.33.1), CI with CodeQL, and dependabot enabled. Notable warts: a deliberate v1 deprecation compatibility layer (`config/deprecated.go`, `types/deprecated_types.go`, `reporters/deprecated_reporter.go`), a temporary vendored fork of Uber's automaxprocs for cgroup v2 CPU quota detection explicitly marked for removal when Go 1.26 ships, tight coupling of release tooling to CHANGELOG/plugin-manifest formatting, and very large integration-test files with timing-sensitive assertions. Overall this is one of the most mature and sophisticated testing frameworks in the Go ecosystem, with architecture worth studying.
Sinon.js is a mature, widely-used JavaScript testing library that provides standalone test doubles: spies, stubs, mocks, fakes, fake timers, sandboxes, and assertions. It is designed to be test-framework agnostic and works in both Node.js and browser environments. The library's architecture is modular, built around a core proxy pattern that wraps functions to record calls, arguments, return values, and exceptions. Behaviors (return values, throws, callbacks, etc.) are defined separately and can be chained per invocation. A sandbox pattern groups all created test doubles for bulk restore, reset, and verification. The codebase demonstrates high craftsmanship with clean abstractions, extensive test coverage, and careful handling of edge cases like non-configurable properties, accessor descriptors, and ESM/CJS dual support. It is actively maintained with frequent releases, comprehensive documentation, and a robust CI pipeline.
This repository is an educational book/course titled 'Learn Go with Tests' by Chris James. It teaches the Go programming language through test-driven development (TDD), building small but complete example applications incrementally. The code is organized by chapter with progressive versions (v1, v2, ...) that demonstrate the TDD red-green-refactor cycle. The primary example application is a poker/league scoring system with an HTTP server, JSON file persistence, a CLI interface, and WebSocket support for real-time games. Other examples include an SVG analog clock generator, a blog post renderer using HTML templates, a dictionary with CRUD operations, and various standalone concept demonstrations (concurrency, context, reflection, generics). The repository is not a single production application but a collection of well-tested, pedagogical code that illustrates idiomatic Go patterns, interface-based design, dependency injection, and testing strategies (unit tests, acceptance tests, property-based tests, and test doubles).
tsumiki is a Claude Code plugin and skill library that operationalizes AI Test-Driven Development (AITDD). It exposes slash commands (`/dev-impl`, `/dev-debug`, `/ipa-security-check`, `/orchestrate`) and Markdown-based skills that guide an AI coding agent through a Red-Green-Refactor-Validation cycle. The repository is not a standalone runtime; it is a development methodology toolkit whose primary artifacts are command definitions, skill instructions, and workflow orchestration logic consumed by Claude Code.