1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wuyan94zl-go-cache

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
cache_test.go 1.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
wuyan94zl Отправлено 15.09.2021 10:04 3a4fd63
package cache
import (
"encoding/json"
"log"
"sync"
"testing"
"time"
)
func init() {
// 初始化缓存服务
Default(nil)
}
func TestCache(t *testing.T) {
var hit CallBack = CallBackFunc(func(key string, params map[string]interface{}) ([]byte, error) {
t.Fatalf("cache hit err") // 应该缓存命中 却执行了函数 测试不通过
return json.Marshal(params)
})
var add CallBack = CallBackFunc(func(key string, params map[string]interface{}) ([]byte, error) {
return json.Marshal(params)
})
// 缓存不存在调用 CallBackFunc 并设置缓存 时效1秒
Instance.CallBackFunc(add).Cache("test", map[string]interface{}{}, 1)
time.Sleep(2 * time.Second)
// sleep 2秒 缓存过期 调用CallBackFunc并设置缓存 时效1秒
Instance.CallBackFunc(add).Cache("test", map[string]interface{}{}, 1)
// 未sleep 获取缓存数据 cache hit
Instance.CallBackFunc(hit).Cache("test", map[string]interface{}{}, 1)
log.Println("cache test pass")
}
func TestSetGet(t *testing.T) {
Instance.Set("set_key", "set_value", 1)
time.Sleep(2 * time.Second)
if _, err := Instance.Get("set_key"); err == nil {
t.Fatalf("set_key 不存在 却返回数据")
}
Instance.Set("set_key", "set_value", 1)
if _, err := Instance.Get("set_key"); err != nil {
t.Fatalf("set_key 存在 却无返回数据")
}
log.Println("set get test pass")
}
func TestSetNX(t *testing.T) {
wg := sync.WaitGroup{}
// setNX 并发测试
for i := 0; i < 10; i++ {
wg.Add(1)
go func(i int, wg *sync.WaitGroup) {
log.Println("setNX 并发测试:", i, Instance.SetNX("keyNx", "1", 10))
wg.Done()
}(i, &wg)
}
wg.Wait()
log.Println("setNX test pass")
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wuyan94zl-go-cache.git
git@api.gitlife.ru:oschina-mirror/wuyan94zl-go-cache.git
oschina-mirror
wuyan94zl-go-cache
wuyan94zl-go-cache
main