{"id":43370167,"url":"https://github.com/ctx42/testing","last_synced_at":"2026-02-02T05:19:44.027Z","repository":{"id":282465496,"uuid":"948600445","full_name":"ctx42/testing","owner":"ctx42","description":"Go Testing Module with mocking, mock generation \u0026 golden files support.","archived":false,"fork":false,"pushed_at":"2026-01-14T12:30:04.000Z","size":1418,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-14T16:45:52.878Z","etag":null,"topics":["go","golang","golang-library","testing","toolkit"],"latest_commit_sha":null,"homepage":"https://blog.ctx42.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ctx42.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-14T16:10:25.000Z","updated_at":"2026-01-14T12:30:09.000Z","dependencies_parsed_at":"2025-04-17T10:50:31.021Z","dependency_job_id":"28212e4c-e574-41c5-bf88-c15df28ed62c","html_url":"https://github.com/ctx42/testing","commit_stats":null,"previous_names":["ctx42/xtst","ctx42/testing"],"tags_count":68,"template":false,"template_full_name":null,"purl":"pkg:github/ctx42/testing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctx42%2Ftesting","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctx42%2Ftesting/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctx42%2Ftesting/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctx42%2Ftesting/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ctx42","download_url":"https://codeload.github.com/ctx42/testing/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctx42%2Ftesting/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29006082,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T04:25:24.522Z","status":"ssl_error","status_checked_at":"2026-02-02T04:24:51.069Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","golang","golang-library","testing","toolkit"],"created_at":"2026-02-02T05:19:43.242Z","updated_at":"2026-02-02T05:19:44.022Z","avatar_url":"https://github.com/ctx42.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![gopher.png](doc/gopher.png)\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/ctx42/testing)](https://goreportcard.com/report/github.com/ctx42/testing)\n[![GoDoc](https://img.shields.io/badge/api-Godoc-blue.svg)](https://pkg.go.dev/github.com/ctx42/testing)\n![Tests](https://github.com/ctx42/testing/actions/workflows/go.yml/badge.svg?branch=master)\n\n---\n\n\u003c!-- TOC --\u003e\n* [Goal](#goal)\n  * [Simplicity and Usability](#simplicity-and-usability)\n  * [Modular and Extensible Design](#modular-and-extensible-design)\n  * [Installation](#installation)\n  * [Packages](#packages)\n    * [Main Packages](#main-packages)\n    * [Supporting Packages](#supporting-packages)\n  * [Blog posts](#blog-posts)\n\u003c!-- TOC --\u003e\n\nWith **zero external dependencies** module provides:\n\n- `assert` (72 hand-picked assertion functions), `mock` and `mocker` packages.\n- Golden file testing helpers in `goldy` package.\n- Assortment of helpers in `kit` package. \n- Configurable any type string dumper in `dump` package.\n- Build your own assertions with ease using `check` package.\n- Test your test helpers with `tester` package.\n\n# Goal\n\nProvide a comprehensive suite of tools designed to make testing more efficient, \nenjoyable to write, and integral to the development process.\n\nWhether you're a seasoned tester or just starting out, tools in this module are \nbeing crafted to meet your needs, providing a solid foundation for ensuring \ncode reliability in projects of all sizes.\n\n## Simplicity and Usability\n\nAt the heart of the module lies a commitment to minimalism and an exceptional\ndeveloper experience (DX). By maintaining zero external dependencies, the\nframework stays lightweight and fast, free from the potential complexities and\nconflicts that third-party modules can introduce. Our documentation is being\ncarefully designed to be thorough, clear, and packed with practical examples,\nempowering you to master the module with ease. Expect a great DX with features \nlike a fluent, chainable API, descriptive error messages for quick debugging, \nall tailored to streamline your testing workflow.\n\n## Modular and Extensible Design\n\nThe `testing` module is built as a collection of modular, laser-focused\npackages, each targeting a specific aspect of testing. For instance, you might\nleverage the `assert` package for assertions, the `mock` and `mocker` packages\nfor test doubles, or the `kit` package to keep your tests readable and\nminimalistic. The modularity lets you customize your testing setup to fit your\nproject’s exact needs, avoiding unnecessary overhead. Beyond customization, the \nextensible architecture invites you to create your own test helpers.\n\n## Installation\nTo install CTX42 Testing Module, use go get:\n\n```shell\ngo get github.com/ctx42/testing\n```\n\nThis will make all the package modules available to you.\n\n## Packages\n\n### Main Packages\n\nPackages used in test cases. \n\n- Package [assert](pkg/assert/README.md) provides assertion toolkit.\n- Package [check](pkg/check/README.md) provides equality toolkit used by `assert` package.\n- Package [goldy](pkg/goldy/README.md) provides basic golden file support.\n- Package [kit](pkg/kit/README.md) provides all sorts of test helpers that are not assertions.\n- Package [mock](pkg/mock/README.md) provides primitives for writing interface mocks.\n- Package [mocker](pkg/mocker/README.md) provides an interface mock generator.\n- Package [must](pkg/must/README.md) provide basic test helpers which panic on error.\n\n### Supporting Packages\n\nPackages are used to create custom checks, assertions, and helpers.\n\n- Package [dump](pkg/dump/README.md) provides a configurable renderer of any type to a string.\n- Package [notice](pkg/notice/README.md) helps to create nicely formatted assertion messages.\n- Package [tester](pkg/tester/README.md) provides facilities to test `Test Helpers`.\n\nClick on the package link to see its README.md file with documentation. Also, \nmost of the packages contain `examples_test.go` file with usage examples.\n\n## Blog posts\n\nI’ve written several [blog posts](http://blog.ctx42.com/tags/gtm/) tied to this\nrepository. If you’re curious about the behind-the-scenes details of how this\npackage is coming together, check them out and share your thoughts — I’d love \nto hear what you think! Any feedback is greatly appreciated.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fctx42%2Ftesting","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fctx42%2Ftesting","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fctx42%2Ftesting/lists"}