打桩的方法内仅执行 return 语句,打桩没有生效
vector233 opened this issue · comments
keep doing commented
以下是测试的代码,我对 Add
方法进行了打桩,预期res
直接返回0
,但是实际执行结果是3
,说明没有打桩成功,执行了Add的逻辑
import (
"testing"
"github.com/agiledragon/gomonkey/v2"
. "github.com/smartystreets/goconvey/convey"
)
func Add(a, b int) int {
//fmt.Println(a, b)
return a + b
}
func Execute(a, b int) int {
return Add(a, b)
}
func TestApplyFunc(t *testing.T) {
Convey("TestAdd", t, func() {
gomonkey.ApplyFunc(Add, func(a, b int) int {
return 0
})
res := Execute(1, 2)
So(res, ShouldEqual, 0)
})
}
当我将 Add
方法增加一行fmt
打印语句,打桩成功,res
返回预期的 0
func Add(a, b int) int {
fmt.Println(a, b)
return a + b
}
请问是什么原因,能否解决呢?
Zhang Xiaolong commented
函数太短,被内联了,可以看README或#114
keep doing commented
了解了。没认真看 readme,耽误大佬时间了。感谢大佬解答