1 回答
TA贡献1873条经验 获得超9个赞
使用接口并使用模拟结构实现它来测试
type User interface {
CreateUser(ctx context.Context, p request.StoreUser) (entity.User, error)
}
type user struct {
//... user struct
}
func (u *user) CreateUser(ctx context.Context, p request.StoreUser) (entity.User, error) {
//... real code goes here
}
然后创建一个模拟
type mockUser struct {
result entity.User
err error
}
func (u *mockUser) CreateUser(ctx context.Context, p request.StoreUser) (entity.User, error) {
return u.result, u.err
}
然后创建一个测试
func TestError(t *testing.T) {
errMockUser := &mockUser{nil,erorrs.New("error")}
result, err := errMockUser.CreateUser(context.Background(),
request.StoreUser{})
assert.Nil(t, result)
assert.Equal(t, errors.New("error"), err)
}
- 1 回答
- 0 关注
- 121 浏览
添加回答
举报
