2016-07-12 16 views
0

redigomock을 처음 사용하고 설명서 및 검색을 통해 나는 유효한 예제를 찾을 수 없습니다. 나는 명백한 것을 놓치고 있지만, 나는 나의 테스트를 작동시키고 싶다.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 
} 

그리고이 테스트 :

redigo: unexpected type for Bool, got type bool

I'v :

func TestCheckPasswordFailures_LessThan5(t *testing.T) { 
 

 
\t conn := redigomock.NewConn() 
 

 
\t conn.Command("EXISTS", "[email protected]_pwf").Expect(true) 
 
\t conn.Command("GET", "[email protected]_pwf").Expect(3) 
 

 
\t actual := checkPasswordFailures(conn, mockUser) 
 

 
\t assert.True(t, actual) 
 

 
}

내가 오류가이 코드를 감안할 때

가치를 예상 된 결과로 강요하기 위해 많은 접근법을 시도했지만 아무 소용이 없었습니다.

도움을 주시면 감사하겠습니다. 미리 감사드립니다.

답변

1

func TestCheckPasswordFailures_LessThan5(t *testing.T) { 
 

 
conn := redigomock.NewConn() 
 

 
conn.Command("EXISTS", "[email protected]_pwf").Expect([]byte("true")) 
 
conn.Command("GET", "[email protected]_pwf").Expect(int64(1)) 
 

 
actual := checkPasswordFailures(conn, mockUser) 
 

 
assert.True(t, actual) 
 
}