github.com/shuguocloud/go-zero@v1.3.0/core/metric/counter_test.go (about) 1 package metric 2 3 import ( 4 "testing" 5 6 "github.com/prometheus/client_golang/prometheus/testutil" 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestNewCounterVec(t *testing.T) { 11 counterVec := NewCounterVec(&CounterVecOpts{ 12 Namespace: "http_server", 13 Subsystem: "requests", 14 Name: "total", 15 Help: "rpc client requests error count.", 16 }) 17 defer counterVec.close() 18 counterVecNil := NewCounterVec(nil) 19 assert.NotNil(t, counterVec) 20 assert.Nil(t, counterVecNil) 21 } 22 23 func TestCounterIncr(t *testing.T) { 24 counterVec := NewCounterVec(&CounterVecOpts{ 25 Namespace: "http_client", 26 Subsystem: "call", 27 Name: "code_total", 28 Help: "http client requests error count.", 29 Labels: []string{"path", "code"}, 30 }) 31 defer counterVec.close() 32 cv, _ := counterVec.(*promCounterVec) 33 cv.Inc("/Users", "500") 34 cv.Inc("/Users", "500") 35 r := testutil.ToFloat64(cv.counter) 36 assert.Equal(t, float64(2), r) 37 } 38 39 func TestCounterAdd(t *testing.T) { 40 counterVec := NewCounterVec(&CounterVecOpts{ 41 Namespace: "rpc_server", 42 Subsystem: "requests", 43 Name: "err_total", 44 Help: "rpc client requests error count.", 45 Labels: []string{"method", "code"}, 46 }) 47 defer counterVec.close() 48 cv, _ := counterVec.(*promCounterVec) 49 cv.Add(11, "/Users", "500") 50 cv.Add(22, "/Users", "500") 51 r := testutil.ToFloat64(cv.counter) 52 assert.Equal(t, float64(33), r) 53 }