forked from p53841790/wheat-cache
doc(init-doc): refactor doc
This commit is contained in:
parent
310e11c65b
commit
eb0014437b
|
@ -1,5 +1,5 @@
|
||||||
### RDB + AOF 的事务解决方案
|
### RDB + AOF 的事务解决方案
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
![事务RDB方案](https://gitee.com/timedb/img/raw/master/images/事务RDB方案.svg)
|
![事务RDB方案](https://gitee.com/timedb/img/raw/master/images/事务RDB方案.svg)
|
|
@ -0,0 +1,54 @@
|
||||||
|
### 单元测试文档
|
||||||
|
|
||||||
|
#### 样例
|
||||||
|
```go
|
||||||
|
package dao
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
_ "gitee.com/timedb/wheatCache/conf"
|
||||||
|
"gitee.com/timedb/wheatCache/pkg/lru"
|
||||||
|
"gitee.com/timedb/wheatCache/pkg/proto"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
// 规范1. 每个 package 应该都至少有一个单测
|
||||||
|
|
||||||
|
// 规范2. 包里有公用的 mock 数据应该分离出来。
|
||||||
|
func mockData(t *testing.T, d *Dao) {
|
||||||
|
|
||||||
|
values := []string{"1", "1.3", "abcdefg"}
|
||||||
|
|
||||||
|
for _, val := range values {
|
||||||
|
key := &proto.BaseKey{
|
||||||
|
Key: val,
|
||||||
|
}
|
||||||
|
_, err := d.Set(key, val)
|
||||||
|
|
||||||
|
// 规范3. 使用 require 包来完成单测
|
||||||
|
require.NoError(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 规范4. 单元测试应该尽可能覆盖全部情况,不要使用依赖注入。
|
||||||
|
func TestDao_Reduce(t *testing.T) {
|
||||||
|
lruCache := lru.NewLRUCache()
|
||||||
|
dao := NewDao(lruCache)
|
||||||
|
mockData(t, dao)
|
||||||
|
|
||||||
|
resp, err := dao.Reduce(&proto.BaseKey{Key: "1"}, 2)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, resp, "-1")
|
||||||
|
|
||||||
|
resp, err = dao.Reduce(&proto.BaseKey{Key: "1.3"}, 2)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, resp, "-0.70")
|
||||||
|
|
||||||
|
_, err = dao.Reduce(&proto.BaseKey{Key: "abcdefg"}, 2)
|
||||||
|
require.Error(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
```
|
Loading…
Reference in New Issue