一小时后如何编写功能返回时间的单元测试

Abh*_*oni -4 unit-testing go

我有以下功能,它在当前时间添加给定的小时数并返回a中的新时间

func getExpiryTime(hour int) *string {
   const layout = "2006-01-02T15:04:05Z"
   expiryTime := time.Now().Local().Add(time.Hour *time.Duration(hour))
   return aws.String(expiryTime.Format(layout))
}
Run Code Online (Sandbox Code Playgroud)

为这个函数编写单元测试的最佳方法是什么?

Dal*_*mer 5

您可以尝试模拟时间提供程序并在模拟中设置time.Now()函数以返回您控制的预设值.在制作中,您可以将其转发到实际时间的调用.

  • 当我向人们讲述单元测试实践时,我指出的第一件事就是当前日期/时间代表*外部依赖*并且必须被嘲笑.这是一个你无法控制并且不断变化的价值. (2认同)