faketime

package module
v0.1.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 4, 2022 License: MIT Imports: 2 Imported by: 0

README

faketime

Mock time.Now() in golang

Examples

time.Date style

package main

import (
	"fmt"
	"time"

	"github.com/AvivYaish/faketime"
)

func main() {
	fmt.Println(time.Now()) // 2017-06-07 18:59:35.01959464 +0900 JST
	f := faketime.NewFaketime(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
	defer f.Undo()
	f.Do()
	fmt.Println(time.Now()) // 2009-11-10 23:00:00 +0000 UTC
}
NewFaketimeWithTime

time.Time style

package main

import (
	"fmt"
	"time"

	"github.com/AvivYaish/faketime"
)

func main() {
	fmt.Println(time.Now()) // 2017-06-07 18:59:35.01959464 +0900 JST
  t := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
	f := faketime.NewFaketimeWithTime(t)
	defer f.Undo()
	f.Do()
	fmt.Println(time.Now()) // 2009-11-10 23:00:00 +0000 UTC
}
DoIncrement

The DoIncrement function allows faked time to increment.

package main

import (
	"time"
	"fmt"
	
	"github.com/AvivYaish/faketime"
)

func main() {
	f := faketime.NewFaketimeWithTime(time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC))
	f.DoIncrement()

	t1 := time.Now()
	time.Sleep(1 * time.Second)
	t2 := time.Now()  // t2 will be one second after t1

	fmt.Println(t1 != t2) // Should not be equal, because time has passed
	fmt.Println(time.Second == t2.Sub(t1).Round(time.Second)) // Should be equal, because a single second has passed
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewFaketime

func NewFaketime(year int, month time.Month, day, hour, min, sec, nsec int, loc *time.Location) *faketime

func NewFaketimeWithTime added in v0.1.1

func NewFaketimeWithTime(t time.Time) *faketime

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL