【发布时间】:2019-04-24 12:50:29
【问题描述】:
我的测试一直失败,但 no actual calls happened 但我肯定 func 正在被调用(这是一个日志记录功能,所以我在终端上看到了日志)
基本上我的代码看起来像这样:
common/utils.go
func LogNilValue(ctx string){
log.Logger.Warn(ctx)
}
main.go
import (
"common/utils"
)
func CheckFunc(*string value) {
ctx := "Some context string"
if value == nil {
utils.LogNilValue(ctx) //void func that just logs the string
}
}
test.go
type MyMockedObject struct{
mock.Mock
}
func TestNil() {
m := new(MyMockedObject)
m.Mock.On("LogNilValue", mock.Anything).Return(nil)
CheckFunc(nil)
m.AssertCalled(s.T(), "LogNilValue", mock.Anything)
}
我希望这能奏效,但我不断收到no actual calls happened。不知道我在这里做错了什么。
【问题讨论】:
-
您使用的是哪个日志库?标准
log或logrus或其他库?同样在TestNil()方法中s变量定义在哪里?你确定TestNil不包含任何*testing.T参数吗?