Closed quwang123 closed 2 years ago
zhangxiaolongdeMacBook-Pro:test zhangxiaolong$ go version go version go1.16.9 darwin/amd64 zhangxiaolongdeMacBook-Pro:test zhangxiaolong$ go test -gcflags=all=-l apply_private_method_test.go -v === RUN TestApplyPrivate
TestApplyPrivate patch private method in the different package ✔
1 total assertion
--- PASS: TestApplyPrivate (0.00s) PASS ok command-line-arguments (cached)
zhangxiaolongdeMacBook-Pro:test zhangxiaolong$ go version go version go1.16.9 darwin/amd64 zhangxiaolongdeMacBook-Pro:test zhangxiaolong$ go test -gcflags=all=-l apply_private_method_test.go -v === RUN TestApplyPrivate
TestApplyPrivate patch private method in the different package ✔
1 total assertion
--- PASS: TestApplyPrivate (0.00s) PASS ok command-line-arguments (cached)
yes
- platform: mac intel
- go verison: go1.16.5 darwin/amd64
- gomonkey version: v2.3.0
- problem: go test apply_private_method_test.go failed
- successed code:
package unit import ( "crypto/md5" "fmt" "github.com/agiledragon/gomonkey/v2" "github.com/stretchr/testify/assert" "reflect" "testing" ) type PasswordHelper2 struct { } func (p *PasswordHelper2) encodePassword(password string) string { return fmt.Sprintf("%x", md5.Sum([]byte(password+"test"))) } func TestPrivateEncodePassword(t *testing.T) { pHelper := PasswordHelper2{} var s *PasswordHelper2 patches := gomonkey.ApplyPrivateMethod(reflect.TypeOf(s), "encodePassword", func(_ *PasswordHelper2, password string) string { return password + "test" }) defer patches.Reset() assert.Equal(t, pHelper.encodePassword("123456"), "123456test") }
faild code
package unit import ( "crypto/md5" "fmt" "github.com/agiledragon/gomonkey/v2" "github.com/stretchr/testify/assert" "reflect" "testing" ) type PasswordHelper2 struct { } func (p PasswordHelper2) encodePassword(password string) string { return fmt.Sprintf("%x", md5.Sum([]byte(password+"test"))) } func TestPrivateEncodePassword(t *testing.T) { pHelper := PasswordHelper2{} var s PasswordHelper2 patches := gomonkey.ApplyPrivateMethod(reflect.TypeOf(s), "encodePassword", func(_ PasswordHelper2, password string) string { return password + "test" }) defer patches.Reset() assert.Equal(t, pHelper.encodePassword("123456"), "123456test") }
can you test the faild code ?
import ( "crypto/md5" "fmt" "github.com/agiledragon/gomonkey/v2" "github.com/stretchr/testify/assert" "reflect" "testing" )
type PasswordHelper2 struct { }
func (p *PasswordHelper2) encodePassword(password string) string { return fmt.Sprintf("%x", md5.Sum([]byte(password+"test"))) }
func TestPrivateEncodePassword(t testing.T) { pHelper := PasswordHelper2{} var s PasswordHelper2 patches := gomonkey.ApplyPrivateMethod(reflect.TypeOf(s), "encodePassword", func(_ *PasswordHelper2, password string) string { return password + "test" }) defer patches.Reset()
}
package unit
import ( "crypto/md5" "fmt" "github.com/agiledragon/gomonkey/v2" "github.com/stretchr/testify/assert" "reflect" "testing" )
type PasswordHelper2 struct { }
func (p PasswordHelper2) encodePassword(password string) string { return fmt.Sprintf("%x", md5.Sum([]byte(password+"test"))) }
func TestPrivateEncodePassword(t *testing.T) { pHelper := PasswordHelper2{} var s PasswordHelper2 patches := gomonkey.ApplyPrivateMethod(reflect.TypeOf(s), "encodePassword", func(_ PasswordHelper2, password string) string { return password + "test" }) defer patches.Reset()
}