package main
import (
"fmt"
"github.com/agiledragon/gomonkey/v2"
. "github.com/smartystreets/goconvey/convey"
"reflect"
"testing"
)
type A struct {
B *B
}
func (a *A) TestA() {
fmt.Println(a.B.TestB())
fmt.Println(2)
}
type B struct {
}
func (*B) TestB() int {
return 1
}
func TestSpec(t *testing.T) {
Convey("Test Spec", t, func() {
b := &B{}
patches := gomonkey.ApplyMethod(reflect.TypeOf(b), "TestB", func(_ *B) int {
return 3
})
defer patches.Reset()
a := A{B: b}
a.TestA()
})
}
output
but it should be 3 2 , why not works???