https://github.com/code-hex/funcy-mock
funcy-mock generates mock file from interface go file
https://github.com/code-hex/funcy-mock
Last synced: 8 months ago
JSON representation
funcy-mock generates mock file from interface go file
- Host: GitHub
- URL: https://github.com/code-hex/funcy-mock
- Owner: Code-Hex
- License: mit
- Created: 2018-05-23T10:48:28.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-08-30T17:49:40.000Z (over 7 years ago)
- Last Synced: 2025-04-30T10:47:11.079Z (8 months ago)
- Language: Go
- Homepage:
- Size: 20.5 KB
- Stars: 52
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# funcy-mock
[](https://goreportcard.com/report/github.com/Code-Hex/funcy-mock)
funcy-mock generates mock file from interface go file
## Synopsis
You can try following:
- `git clone git@github.com:Code-Hex/funcy-mock.git && cd funcy-mock/tmp`
- `funcygen demo.go`
If you have some question, You run `funcygen -h` or report to issue.
## Description
**THIS TOOL IS BETA QUALITY.**
`funcygen` just by specifying the Go file described the interface, we will generate a go file containing the mock code.
## Installation
go get github.com/cmd/funcygen
## Generated file
from `demo.go` to `demo_mock_for_test.go`
```go
package main
import (
"context"
"github.com/Code-Hex/funcy-mock/tmp/internal/auth"
"github.com/Code-Hex/funcy-mock/tmp/internal/user"
)
type UserServiceMock struct {
auth func(context.Context) (*auth.Token, error)
get func() (*user.Response, error)
}
func NewUserServiceMock() *UserServiceMock {
return &UserServiceMock{
auth: func(context.Context) (*auth.Token, error) { return nil, nil },
get: func() (*user.Response, error) { return nil, nil },
}
}
func (u *UserServiceMock) Auth(ctx context.Context) (*auth.Token, error) {
return u.auth()
}
func (u *UserServiceMock) SetAuth(f func(context.Context) (*auth.Token, error)) {
if f == nil {
panic("You should specify the mock function")
}
u.auth = f
}
func (u *UserServiceMock) Get() (*user.Response, error) {
return u.get()
}
func (u *UserServiceMock) SetGet(f func() (*user.Response, error)) {
if f == nil {
panic("You should specify the mock function")
}
u.get = f
}
type AuthServiceMock struct {
auth func(context.Context) (*auth.Token, error)
}
func NewAuthServiceMock() *AuthServiceMock {
return &AuthServiceMock{
auth: func(context.Context) (*auth.Token, error) { return nil, nil },
}
}
func (a *AuthServiceMock) Auth(ctx context.Context) (*auth.Token, error) {
return a.auth()
}
func (a *AuthServiceMock) SetAuth(f func(context.Context) (*auth.Token, error)) {
if f == nil {
panic("You should specify the mock function")
}
a.auth = f
}
```