我目前正在编写一个与字符串进行比较的单元测试。第一个字符串是使用函数生成的。另一个是硬编码的并用作参考。我的问题是,创建第一个字符串的函数将精确到秒的当前时间 (time.Now()) 注入到字符串中。目前我也做了同样的事情作为参考,但这对我来说似乎很丑陋。我的机器运行得足够快,因此测试可以通过,但我不想依赖它。
进行此类测试的一般技术是什么?
time.Now()您可以像在文件中一样存根函数_test.go,通过该init()函数,这将给出确定的时间值:
package main
import (
"fmt"
"time"
)
var timeNow = time.Now
func main() {
fmt.Println(timeNow())
}
func init() {
// Uncomment and add to _test.go init()
// timeNow = func() time.Time {
// t, _ := time.Parse("2006-01-02 15:04:05", "2017-01-20 01:02:03")
// return t
// }
}
Run Code Online (Sandbox Code Playgroud)
请参阅: https: //play.golang.org/p/hI6MrQGyDA
| 归档时间: |
|
| 查看次数: |
4900 次 |
| 最近记录: |