memememomo / dbmock

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

dbmock

import github.com/memememomo/dbmock

dbmock is a mock generator for Go.

Example

package main

import (
	"fmt"
	
	"github.com/memememomo/dbmock"
)

type User struct {
	ID uint64
	Name string
}

// Implement DBMapper 
func (u *User) ToDB() error {
	// Save to DB...
	return nil
}

// Mock setting
func user(i uint64) dbmock.DBMapper {
	return dbmock.Mock(&User{
		ID: i + 1,
		Name: fmt.Sprintf("Name_%d", i + 1),
	})
}

func UserMock() *Generator {
	return NewGenerator(user)
}

func main() {
	generator := UserMock()
	
	// Single - Only Mock
	user := generator.Single(0, nil).(*User)
	
	// Multi - 5 mocks
	mocks := generator.Multi(5, nil)
	
	// Single with overwriter
	user := generator.Single(1, func(i uint64, mapper DBMapper) DBMapper {
		u := mapper.(*User)
		u.Name = "Overwrite_Name"
		return u
	})
}

About


Languages

Language:Go 100.0%