github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/rcrowley/go-metrics/gauge_test.go (about)

     1  package metrics
     2  
     3  import "testing"
     4  
     5  func BenchmarkGuage(b *testing.B) {
     6  	g := NewGauge()
     7  	b.ResetTimer()
     8  	for i := 0; i < b.N; i++ {
     9  		g.Update(int64(i))
    10  	}
    11  }
    12  
    13  func TestGauge(t *testing.T) {
    14  	g := NewGauge()
    15  	g.Update(int64(47))
    16  	if v := g.Value(); 47 != v {
    17  		t.Errorf("g.Value(): 47 != %v\n", v)
    18  	}
    19  }
    20  
    21  func TestGaugeSnapshot(t *testing.T) {
    22  	g := NewGauge()
    23  	g.Update(int64(47))
    24  	snapshot := g.Snapshot()
    25  	g.Update(int64(0))
    26  	if v := snapshot.Value(); 47 != v {
    27  		t.Errorf("g.Value(): 47 != %v\n", v)
    28  	}
    29  }
    30  
    31  func TestGetOrRegisterGauge(t *testing.T) {
    32  	r := NewRegistry()
    33  	NewRegisteredGauge("foo", r).Update(47)
    34  	if g := GetOrRegisterGauge("foo", r); 47 != g.Value() {
    35  		t.Fatal(g)
    36  	}
    37  }