golang使用緩存庫go-cache的測試用例-短期內存緩存數據類似memcache/redis-【唯一客服】

golang中使用go-cache是非常普遍的,比如,我在對接微信客服接口的時候,獲取access_token,默認獲取一次有兩個小時的有效期

這個時候,我就可以使用go-cache來緩存access_token了

 

下面是對go-cache的測試用例:

package tools
import (
    "testing"
    "time"

    "github.com/patrickmn/go-cache"
)

func TestGoCache(t *testing.T) {
    // 創建一個具有默認過期時間爲5分鐘和清理間隔爲10分鐘的緩存
    c := cache.New(5*time.Minute, 10*time.Minute)

    // 使用默認過期時間將鍵 "foo" 的值設置爲 "bar"
    c.Set("foo", "bar", cache.DefaultExpiration)

    // 獲取鍵 "foo" 的值
    value, found := c.Get("foo")
    if !found {
        t.Error("緩存中未找到鍵 'foo'")
    }

    if value != "bar" {
        t.Errorf("預期爲 'bar',得到 '%s'", value)
    }

    // 刪除鍵 "foo"
    c.Delete("foo")

    // 檢查鍵 "foo" 是否已刪除
    _, found = c.Get("foo")
    if found {
        t.Error("鍵 'foo' 應該被刪除")
    }
}
// TestGoCacheWithExpiration 測試設置過期時間爲3600秒的數據
func TestGoCacheWithExpiration(t *testing.T) {
    // 創建一個具有默認過期時間爲5分鐘和清理間隔爲10分鐘的緩存
    c := cache.New(5*time.Minute, 10*time.Minute)

    // 將鍵 "foo" 的值設置爲 "bar",過期時間爲10秒
    c.Set("foo", "bar", time.Duration(10)*time.Second)

    // 獲取鍵 "foo" 的值
    value, found := c.Get("foo")
    if !found {
        t.Error("緩存中未找到鍵 'foo'")
    }

    if value != "bar" {
        t.Errorf("預期爲 'bar',得到 '%s'", value)
    }

    // 等待10秒後,鍵 "foo" 應該過期
    time.Sleep(10 * time.Second)

    // 檢查鍵 "foo" 是否已過期
    _, found = c.Get("foo")
    if found {
        t.Error("鍵 'foo' 應該已過期")
    }
}

go test -v go_cache_test.go

過期以後就會被刪除的,所以測試全部通過

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章