Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package service
- import (
- "github.com/stretchr/testify/assert"
- "github.com/micnncim/clean-arch-test/repository"
- )
- // type UserRepository interface {
- // GetByID(id int) (*User, error)
- // GetByName(name string) (*User, error)
- // }
- // type UserService interface {
- // GetByID(id int) (*User, error)
- // GetByName(name string) (*User, error)
- // }
- // type userService struct {
- // r repository.UserRepository
- // }
- type fakeUserRepository struct {
- }
- func (r *fakeUserRepository) GetByID(id int) (*User, error) {
- return &User{
- ID: 1,
- Name: "Alice",
- }, nil
- }
- func (r *fakeUserRepository) GetByName(name string) (*User, error) {
- ...
- }
- func TestGetByID(t *testing.T) {
- patterns := []struct{
- in int
- expected *User
- }{
- {
- in: 1,
- expected: &User{
- ID: 1,
- Name: "Alice",
- },
- },
- }
- s := &UserService{r: &fakeUserRepository{}}
- for _, p := range patterns {
- actual, err := s.GetByID(p.in)
- assert.NoError(t, err, "expect no error")
- assert.Equal(t, p.expected, actual, "expect expected == actual")
- }
- }
Add Comment
Please, Sign In to add comment