Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

MyNihongo/mockgen

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mockgen: Mock generation in Go

Mockgen is an utility for testify which generates the mundane mock initialisation code such as:

  • mock classes of all services of a struct;
  • type-safe setup methods (On("FunctionName") and Return());
  • AssertExpectations for all services of a struct.

Installing

Install the CLI for code generation

go get github.com/MyNihongo/mockgen/cmd/mockgen

Add go generate for required mocks

//go:generate mockgen impl1:Impl1Service
package mocking

import (
	"github.com/MyNihongo/mockgen/mocking/pkg1"
	"github.com/MyNihongo/mockgen/mocking/pkg2"
)

type impl1 struct {
	ser1 pkg1.Service1_1
	ser2 pkg2.Service2_1
}

type Impl1Service interface {
	Foo()
}

func (i *impl1) Foo() {
	i.ser1.Foo("string", 12)
	i.ser2.Foo("string1", "string2")
}

This will generate quite a lot of code, so please go to mock_gen_test.go to see what is actually generated.

Command samples

Unlimited number of services can be passed for generation.
A single entry may be structType or structType:interfaceType.

mockgen service1:Service1 service2:Service2 service3:Service3

Generate mocks for service1, service2 and service3 with interfaces.

mockgen service1:Service1 service2

Generate a mock for service1 with its interface; Generate a mock for service2 without an interface.

Keep the package reference

Command go mod tidy will remove the reference of Mockgen by default. In order to keep the reference create a dummy file somewhere and import a dummy type.

package pkg

import "github.com/MyNihongo/mockgen"

var _ mockgen.Reference
Morty Proxy This is a proxified and sanitized view of the page, visit original site.