{"id":18622548,"url":"https://github.com/mindreframer/golang-testing-stuff","last_synced_at":"2025-11-03T16:30:18.209Z","repository":{"id":10250955,"uuid":"12358164","full_name":"mindreframer/golang-testing-stuff","owner":"mindreframer","description":null,"archived":false,"fork":false,"pushed_at":"2014-05-05T22:14:31.000Z","size":1284,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-27T05:07:42.462Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mindreframer.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-08-25T11:39:28.000Z","updated_at":"2018-09-29T15:11:40.000Z","dependencies_parsed_at":"2022-09-19T10:11:26.875Z","dependency_job_id":null,"html_url":"https://github.com/mindreframer/golang-testing-stuff","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindreframer%2Fgolang-testing-stuff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindreframer%2Fgolang-testing-stuff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindreframer%2Fgolang-testing-stuff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindreframer%2Fgolang-testing-stuff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mindreframer","download_url":"https://codeload.github.com/mindreframer/golang-testing-stuff/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239418544,"owners_count":19635203,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-07T04:17:33.295Z","updated_at":"2025-11-03T16:30:18.082Z","avatar_url":"https://github.com/mindreframer.png","language":"Go","readme":"### A copy with slight modifications from https://github.com/shageman/gotestit.git\n\n\n## Presentations:\n\n    - [Test-Patterns in Go, 2013.10](https://s3.amazonaws.com/cmdrkeene-talks/test-patterns-in-go.html)\n\n\u003c!-- PROJECTS_LIST_START --\u003e\n    *** GENERATED BY https://github.com/mindreframer/techwatcher (ruby _sh/pull golang-testing-stuff) *** \n\n    bmatsuo/go-spec:\n      Another interpretation of RSpec for Go (golang)\n       30 commits, last change: , 9 stars, 1 forks\n\n    cloudfoundry/gosteno:\n\n       74 commits, last change: , 8 stars, 5 forks\n\n    franela/goblin:\n      Minimal and Beautiful Go testing framework\n       114 commits, last change: , 118 stars, 7 forks\n\n    gophertown/looper:\n      Autotesting tool with readline support.\n       77 commits, last change: , 91 stars, 4 forks\n\n    onsi/ginkgo:\n      BDD Testing Framework for Go\n       258 commits, last change: , 308 stars, 18 forks\n\n    orfjackal/gospec:\n      Testing framework for Go. Allows writing self-documenting tests/specifications, and executes them concurrently and safely isolated.\n       200 commits, last change: , 105 stars, 18 forks\n\n    pranavraja/zen:\n      BDD testing framework for Go\n       31 commits, last change: , 23 stars, 1 forks\n\n    qur/withmock:\n      Automatic Go package mock generation tool\n       191 commits, last change: , 29 stars, 4 forks\n\n    r7kamura/gospel:\n      BDD-style testing library for Golang\n       37 commits, last change: , 58 stars, 3 forks\n\n    remogatto/prettytest:\n      A simple testing library for Go\n       65 commits, last change: , 97 stars, 8 forks\n\n    smartystreets/goconvey:\n      Go testing in the browser. Integrates with `go test`. Write behavioral tests in Go.\n       682 commits, last change: , 862 stars, 58 forks\n\n    stretchr/testify:\n      A sacred extension to the standard go testing package\n       124 commits, last change: , 266 stars, 23 forks\n\u003c!-- PROJECTS_LIST_END --\u003e\n\n\n\n\n# Go Test It [![Build Status](https://travis-ci.org/shageman/gotestit.png?branch=master)](https://travis-ci.org/shageman/gotestit)\n\nSummary from the July presentation: There are a couple of interesting testing libraries in go. \"testing\" comes with the standard library, and gives only very basic support for asserting facts.\n\nOf the other libraries, I recommend looking at \"testify/assert\", \"zen\", and \"gocheck\". testify/assert is used in conjunction with testing to which it adds a lot of useful assertions, but doesn't change the basics of how a test is written. Zen implements the best version of BDD style testing I have seen in go. Essentially, you write one test into which you embed describes, its, and expects. Like testify/assert \"gocheck\" comes with many matchers out of the box. Gocheck requires creating a suite struct and uses a non-standard way of running the test methods. Its most useful feature to me are setup and teardown methods to allow tests in a suite to share common code. The shared state can lead to problems with concurrent code.\n\nSo, summary of the summary: if you are just trying to test stuff and need assertions, go with testify/assert. If you want to see and play with BDD for go, use zen.\n\n\n[Slides from my presentation at Denver Gopher's 7/25/2013](https://github.com/shageman/gotestit/blob/master/20130725denverGophersPresentation.pdf)\n\nComparison of go lang testing libraries\n\n## Libraries in comparison\n\n*   testing: http://golang.org/pkg/testing/\n    Last Activity: -\n\n*   testify: https://github.com/stretchr/testify/\n    Last Activity: 7 days ago on 7/24/2013\n\n*   gocheck: http://labix.org/gocheck\n    Last Activity: 30 days ago on 7/24/2013\n\n*   prettytest: https://github.com/remogatto/prettytest\n    Last Activity: 90 days ago on 7/24/2013\n\n*   go-spec: https://github.com/bmatsuo/go-spec\n    Last Activity: 700 days ago on 7/24/2013\n\n*   gospec: https://github.com/orfjackal/gospec\n    Last Activity: 350 days ago on 7/24/2013\n\n*   mao: https://github.com/azer/mao\n    Last Activity: 17 days ago on 7/9/2013\n\n*   zen: https://github.com/pranavraja/zen\n    License: Apache\n    Last Activity: 14 days ago on 7/13/2013\n\n## Assertions/Matchers\n\n\u003ctable\u003e\n    \u003ctbody\u003e\n    \u003ctr\u003e\n        \u003cth\u003eName\u003c/th\u003e\n        \u003cth\u003eTesting\u003c/th\u003e\n        \u003cth\u003etestify\u003c/th\u003e\n        \u003cth\u003egocheck\u003c/th\u003e\n        \u003cth\u003eprettytest\u003c/th\u003e\n        \u003cth\u003ego-spec\u003c/th\u003e\n        \u003cth\u003egospec\u003c/th\u003e\n        \u003cth\u003emao/zen\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eLicense\u003c/td\u003e\n        \u003ctd\u003eBSD\u003c/td\u003e\n        \u003ctd\u003eMIT\u003c/td\u003e\n        \u003ctd\u003eBSD\u003c/td\u003e\n        \u003ctd\u003eMIT\u003c/td\u003e\n        \u003ctd\u003eBSD\u003c/td\u003e\n        \u003ctd\u003eApache\u003c/td\u003e\n        \u003ctd\u003eMIT/Apache\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eAssertions\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003euses gocheck\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eStyle\u003c/td\u003e\n        \u003ctd\u003emake your own\u003c/td\u003e\n        \u003ctd\u003eassert\u003c/td\u003e\n        \u003ctd\u003espec\u003c/td\u003e\n        \u003ctd\u003espec\u003c/td\u003e\n        \u003ctd\u003espec\u003c/td\u003e\n        \u003ctd\u003espec\u003c/td\u003e\n        \u003ctd\u003espec\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eEqual\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eIsSame\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eDeepEqual\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eTrue\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eFalse\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eNil\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eEmpty\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eError\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eImplements\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eIsType\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eStringContains\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eStringMatches\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eCollection\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ePanics\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eHasLen\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eMatches\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eSatisfy\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eWithin\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n        \u003ctd\u003e✓\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n*CollectionContains allows checks for All, Any, Exactly, InOrder, and InPartialOrder\n\n## Sources\n\nhttps://code.google.com/p/go-wiki/wiki/Projects#Testing\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindreframer%2Fgolang-testing-stuff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmindreframer%2Fgolang-testing-stuff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindreframer%2Fgolang-testing-stuff/lists"}