测试golang期间的存根时间.Now()?
我下面是另一个答案: 因此,我有一个文件,其中我做了如下操作: 我们在另一个函数中使用GenerateTimestamp()测试golang期间的存根时间.Now()?,go,time,stubbing,go-testing,Go,Time,Stubbing,Go Testing,我下面是另一个答案: 因此,我有一个文件,其中我做了如下操作: 我们在另一个函数中使用GenerateTimestamp() 现在,在我的测试文件中,我做了如下操作: 我收到此错误无法将func literal(type func()int64)用作赋值中的type func()time.time。我需要能够返回一个int64类型(我的原始函数返回),我如何才能避免这个问题 请随时给我指点医生,我是一个新手 是一个返回以下类型值的函数: 因此,timeNow的类型是这种类型的函数:func()
现在,在我的测试文件中,我做了如下操作: 我收到此错误
无法将func literal(type func()int64)用作赋值中的type func()time.time
。我需要能够返回一个int64类型(我的原始函数返回),我如何才能避免这个问题
请随时给我指点医生,我是一个新手 是一个返回以下类型值的函数:
因此,timeNow
的类型是这种类型的函数:func()time.time
。这显然不同于func()int64
您必须返回一个time.time
值。如果要返回表示特定unix时间的time.time
值,可以使用函数获取该值,例如
unixsec := int64(1605139200) // This is 2020-11-12 00:00:00 +0000 UTC
timeNow = func() time.Time {
return time.Unix(unixsec, 0)
}
如果要返回特定的日期和时间,可以使用,例如:
当然,您并不局限于总是在同一时间返回。您可以在每次调用时返回递增的时间值,例如:
unixsec := int64(1605139200) // This is 2020-11-12 00:00:00 +0000 UTC
timeNow = func() time.Time {
unixsec++ // Increment number of seconds by 1
return time.Unix(unixsec, 0)
}
此timeNow
函数将返回一个始终递增1秒的时间值(与上一次调用返回的值相比)。是一个返回以下类型值的函数:
因此,timeNow
的类型是这种类型的函数:func()time.time
。这显然不同于func()int64
您必须返回一个time.time
值。如果要返回表示特定unix时间的time.time
值,可以使用函数获取该值,例如
unixsec := int64(1605139200) // This is 2020-11-12 00:00:00 +0000 UTC
timeNow = func() time.Time {
return time.Unix(unixsec, 0)
}
如果要返回特定的日期和时间,可以使用,例如:
当然,您并不局限于总是在同一时间返回。您可以在每次调用时返回递增的时间值,例如:
unixsec := int64(1605139200) // This is 2020-11-12 00:00:00 +0000 UTC
timeNow = func() time.Time {
unixsec++ // Increment number of seconds by 1
return time.Unix(unixsec, 0)
}
此
timeNow
函数将返回一个始终递增1秒的时间值(与上次调用返回的值相比)。感谢您的响应!这非常有帮助:)谢谢你的回复!这非常有用:)
unixsec := int64(1605139200) // This is 2020-11-12 00:00:00 +0000 UTC
timeNow = func() time.Time {
return time.Unix(unixsec, 0)
}
timeNow = func() time.Time {
return time.Date(2020, 11, 12, 0, 0, 0, 0, time.UTC)
}
unixsec := int64(1605139200) // This is 2020-11-12 00:00:00 +0000 UTC
timeNow = func() time.Time {
unixsec++ // Increment number of seconds by 1
return time.Unix(unixsec, 0)
}