github.com/go-redis/redismock/v8
Readme
Provide mock test for redis query, Compatible with github.com/go-redis/redis/v8
Confirm that you are using redis.Client the version is github.com/go-redis/redis/v8
go get github.com/go-redis/redismock/v8
RedisClient
var ctx = context.TODO()
func NewsInfoForCache(redisDB *redis.Client, newsID int) (info string, err error) {
cacheKey := fmt.Sprintf("news_redis_cache_%d", newsID)
info, err = redisDB.Get(ctx, cacheKey).Result()
if err == redis.Nil {
// info, err = call api()
info = "test"
err = redisDB.Set(ctx, cacheKey, info, 30 * time.Minute).Err()
}
return
}
func TestNewsInfoForCache(t *testing.T) {
db, mock := redismock.NewClientMock()
newsID := 123456789
key := fmt.Sprintf("news_redis_cache_%d", newsID)
// mock ignoring `call api()`
mock.ExpectGet(key).RedisNil()
mock.Regexp().ExpectSet(key, `[a-z]+`, 30 * time.Minute).SetErr(errors.New("FAIL"))
_, err := NewsInfoForCache(db, newsID)
if err == nil || err.Error() != "FAIL" {
t.Error("wrong error")
}
if err := mock.ExpectationsWereMet(); err != nil {
t.Error(err)
}
}
RedisCluster
clusterClient, clusterMock := redismock.NewClusterMock()
RedisClient:
Subscribe
/ PSubscribe
RedisCluster
Subscribe
/ PSubscribe
Pipeline
/ TxPipeline
Watch
FAQs
Unknown package
We found that github.com/go-redis/redismock/v8 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket installs a GitHub app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.