---
name: "mockgen"
section: "1"
platform: "linux"
package: "mockgen"
version: "1.6.0-2+b17"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/mockgen"
---

# mockgen(1)

generate source for mock class of a Go source

## NAME

mockgen - generate source for mock class of a Go source

## DESCRIPTION

The \`mockgen\` command is used to generate source code for a mock class given a Go source file containing interfaces to be mocked.

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

**-aux\_files=**"": (source mode) Comma-separated pkg=path pairs of auxiliary Go source files.

**-debug\_parser**=*false*: Print out parser results only.

**-destination=**"": Output file; defaults to stdout.

**-exec\_only=**"": (reflect mode) If set, execute this reflection program.

**-imports=**"": (source mode) Comma-separated name=path pairs of explicit imports to use.

**-package=**"": Package of the generated code; defaults to the package of the input with a 'mock\_' prefix.

**-prog\_only**=*false*: (reflect mode) Only generate the reflection program; write it to stdout.

**-self\_package=**"": If set, the package this mock will be part of.

**-source=**"": (source mode) Input Go source file; enables source mode.

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

**-aux\_files=**"": (source mode) Comma-separated pkg=path pairs of auxiliary Go source files.

**-debug\_parser**=*false*: Print out parser results only.

**-destination=**"": Output file; defaults to stdout.

**-exec\_only=**"": (reflect mode) If set, execute this reflection program.

**-imports=**"": (source mode) Comma-separated name=path pairs of explicit imports to use.

**-package=**"": Package of the generated code; defaults to the package of the input with a 'mock\_' prefix.

**-prog\_only**=*false*: (reflect mode) Only generate the reflection program; write it to stdout.

**-self\_package=**"": If set, the package this mock will be part of.

**-source=**"": (source mode) Input Go source file; enables source mode.
