Closed vector233 closed 6 months ago
以下是测试的代码,我对 Add 方法进行了打桩,预期res直接返回0,但是实际执行结果是3,说明没有打桩成功,执行了Add的逻辑
Add
res
0
3
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
fmt
func Add(a, b int) int { fmt.Println(a, b) return a + b }
请问是什么原因,能否解决呢?
函数太短,被内联了,可以看README或https://github.com/agiledragon/gomonkey/issues/114
了解了。没认真看 readme,耽误大佬时间了。感谢大佬解答
以下是测试的代码,我对
Add
方法进行了打桩,预期res
直接返回0
,但是实际执行结果是3
,说明没有打桩成功,执行了Add的逻辑当我将
Add
方法增加一行fmt
打印语句,打桩成功,res
返回预期的0
请问是什么原因,能否解决呢?