1 回答

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊
使用接口并使用模擬結(jié)構(gòu)實(shí)現(xiàn)它來(lái)測(cè)試
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
}
然后創(chuàng)建一個(gè)模擬
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
}
然后創(chuàng)建一個(gè)測(cè)試
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 關(guān)注
- 89 瀏覽
添加回答
舉報(bào)