A copy with slight modifications from https://github.com/shageman/gotestit.git
- [Test-Patterns in Go, 2013.10](https://s3.amazonaws.com/cmdrkeene-talks/test-patterns-in-go.html)
*** GENERATED BY https://github.com/mindreframer/techwatcher (ruby _sh/pull golang-testing-stuff) ***
bmatsuo/go-spec:
Another interpretation of RSpec for Go (golang)
30 commits, last change: , 9 stars, 1 forks
cloudfoundry/gosteno:
74 commits, last change: , 8 stars, 5 forks
franela/goblin:
Minimal and Beautiful Go testing framework
114 commits, last change: , 118 stars, 7 forks
gophertown/looper:
Autotesting tool with readline support.
77 commits, last change: , 91 stars, 4 forks
onsi/ginkgo:
BDD Testing Framework for Go
258 commits, last change: , 308 stars, 18 forks
orfjackal/gospec:
Testing framework for Go. Allows writing self-documenting tests/specifications, and executes them concurrently and safely isolated.
200 commits, last change: , 105 stars, 18 forks
pranavraja/zen:
BDD testing framework for Go
31 commits, last change: , 23 stars, 1 forks
qur/withmock:
Automatic Go package mock generation tool
191 commits, last change: , 29 stars, 4 forks
r7kamura/gospel:
BDD-style testing library for Golang
37 commits, last change: , 58 stars, 3 forks
remogatto/prettytest:
A simple testing library for Go
65 commits, last change: , 97 stars, 8 forks
smartystreets/goconvey:
Go testing in the browser. Integrates with `go test`. Write behavioral tests in Go.
682 commits, last change: , 862 stars, 58 forks
stretchr/testify:
A sacred extension to the standard go testing package
124 commits, last change: , 266 stars, 23 forks
Summary 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.
Of 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.
So, 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.
Slides from my presentation at Denver Gopher's 7/25/2013
Comparison of go lang testing libraries
-
testing: http://golang.org/pkg/testing/ Last Activity: -
-
testify: https://github.com/stretchr/testify/ Last Activity: 7 days ago on 7/24/2013
-
gocheck: http://labix.org/gocheck Last Activity: 30 days ago on 7/24/2013
-
prettytest: https://github.com/remogatto/prettytest Last Activity: 90 days ago on 7/24/2013
-
go-spec: https://github.com/bmatsuo/go-spec Last Activity: 700 days ago on 7/24/2013
-
gospec: https://github.com/orfjackal/gospec Last Activity: 350 days ago on 7/24/2013
-
mao: https://github.com/azer/mao Last Activity: 17 days ago on 7/9/2013
-
zen: https://github.com/pranavraja/zen License: Apache Last Activity: 14 days ago on 7/13/2013
Name | Testing | testify | gocheck | prettytest | go-spec | gospec | mao/zen |
---|---|---|---|---|---|---|---|
License | BSD | MIT | BSD | MIT | BSD | Apache | MIT/Apache |
Assertions | uses gocheck | ||||||
Style | make your own | assert | spec | spec | spec | spec | spec |
Equal | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
IsSame | ✓ | ||||||
DeepEqual | ✓ | ✓ | |||||
True | ✓ | ✓ | |||||
False | ✓ | ✓ | |||||
Nil | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Empty | ✓ | ||||||
Error | ✓ | ✓ | ✓ | ✓ | |||
Implements | ✓ | ✓ | ✓ | ||||
IsType | ✓ | ✓ | ✓ | ||||
StringContains | ✓ | ||||||
StringMatches | ✓ | ✓ | |||||
Collection | ✓ | ||||||
Panics | ✓ | ✓ | ✓ | ✓ | |||
HasLen | ✓ | ✓ | |||||
Matches | ✓ | ✓ | |||||
Satisfy | ✓ | ✓ | |||||
Within | ✓ |
*CollectionContains allows checks for All, Any, Exactly, InOrder, and InPartialOrder