我是 redigomock 的新手,通过文档和谷歌搜索,我根本找不到一个有效的例子。我遗漏了一些明显的东西,但我希望我的测试能够正常工作。
鉴于此代码:
var checkPasswordFailures = func(client redis.Conn, u *User) bool {
var userkey = getPasswordFailKey(u)
var existing, err = redis.Bool(client.Do("EXISTS", userkey))
fmt.Printf("%s - existing = %v\n", userkey, existing)
if err != nil {
Log.Errorf("error in checkPasswordFailures: %s", err.Error())
}
if existing == true {
fmt.Println("Existing true")
reply, err := redis.Int(client.Do("GET", userkey))
Log.Debug("Attempt Count: %d", reply)
if err != nil {
Log.Errorf("error in checkPasswordFailures: %s", err.Error())
}
return reply < 5
}
fmt.Println("Using default")
return true
}
而这个测试:
func TestCheckPasswordFailures_LessThan5(t *testing.T) {
conn := redigomock.NewConn()
conn.Command("EXISTS", "test@xxx.com_pwf").Expect(true)
conn.Command("GET", "test@xxx.com_pwf").Expect(3)
actual := checkPasswordFailures(conn, mockUser)
assert.True(t, actual)
}
我收到一个错误:
redigo:Bool 的意外类型,得到了 bool 类型
我尝试了许多方法来强制将值转换为预期结果,但无济于事。
任何帮助表示赞赏,在此先感谢您!