Home

Awesome

gomock Build Status

GoMock is a mocking framework for the Go programming language. It integrates well with Go's built-in testing package, but can be used in other contexts too.

Installation

Once you have installed Go, run these commands to install the gomock package and the mockgen tool:

go get github.com/golang/mock/gomock
go install github.com/golang/mock/mockgen

Documentation

After installing, you can use go doc to get documentation:

go doc github.com/golang/mock/gomock

Alternatively, there is an online reference for the package hosted on GoPkgDoc here.

Running mockgen

mockgen has two modes of operation: source and reflect. Source mode generates mock interfaces from a source file. It is enabled by using the -source flag. Other flags that may be useful in this mode are -imports and -aux_files.

Example:

mockgen -source=foo.go [other options]

Reflect mode generates mock interfaces by building a program that uses reflection to understand interfaces. It is enabled by passing two non-flag arguments: an import path, and a comma-separated list of symbols.

Example:

mockgen database/sql/driver Conn,Driver

The mockgen command is used to generate source code for a mock class given a Go source file containing interfaces to be mocked. It supports the following flags:

For an example of the use of mockgen, see the sample/ directory. In simple cases, you will need only the -source flag.

TODO: Brief overview of how to create mock objects and set up expectations, and an example.