2013-08-16 3 views
3

새로운 테스트를 시작했습니다. 내 메서드는 md5 해시가있는 [] 바이트를 반환합니다. 그것은 항상 실패합니다이동 중에도 기능을 테스트 할 수있는 적절한 테스트 방법

func TestMyHash(t *testing.T) { 
    s := "linux" 
    bf := ("e206a54e97690cce50cc872dd70ee896") 
    x := hashor(s) 
    if !bytes.Equal(x, []byte(bf)) { 
     t.Errorf("myHash ...") 
    } 
} 

:이 방법을 테스트있을 때

func myHash(s string) []byte { 
    h := md5.New() 
    io.WriteString(h, s) 
    return h.Sum(nil) 
} 

것은이 일하고 및 해시는 확인을 보이지만. 처음에는 문자열을 [] 바이트로 캐스팅하거나 그 반대로 캐스팅하는 것이 다소 문제가 될 수 있다고 생각했지만, 반복해서 시도한 후에 여기에서 물어볼 필요가 있습니다.

내 기능을 테스트하는 방법을 보여줄 수 있습니까? 내가 필요한 것을 놓치니?

미리 감사드립니다.

+0

팁 주셔서 감사합니다. 캐스트 된 문자열은 동일합니다. – jan

답변

6

아마도 해시의 원시 바이트를 16 진수 형식의 해시 버전과 비교할 수 있습니다. 다음과 같이 할 수 있습니다.

got := fmt.Sprintf("%034x", myHash("linux")) 
want := "00e206a54e97690cce50cc872dd70ee896" 
if got != want { 
    t.Errorf("got %q, want %q", got, want) 
} 
+0

정말 고마워요! 나는 그것을 간과했다! – jan

+0

당신은 환영합니다. 문제를 해결 한 경우 해답을 솔루션으로 표시하는 것이 좋습니다. 감사 :) – tux21b

관련 문제