Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
测试golang期间的存根时间.Now()?_Go_Time_Stubbing_Go Testing - Fatal编程技术网

测试golang期间的存根时间.Now()?

测试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()

我下面是另一个答案:

因此,我有一个文件,其中我做了如下操作: 我们在另一个函数中使用GenerateTimestamp()
现在,在我的测试文件中,我做了如下操作: 我收到此错误
无法将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)
}